converted allocators to template functions.
currently full backward compatibility is preserved.
the new templated functions use bigint instead of
int to allow for > 2GB allocations on 64-bit machines.
in the future, only the templated allocators would be
used and thus allowing consistent use for more types.