Added a global registry for mallocators.
Remove all read and write methods from ArrayBlock except for Unknown.  Added a Mallocator to ArrayBlock.Allocate().
Fixes for array writing and array memory allocation.
Removed all usages of InitFromHeader.  Rewrote ArrayBlock.ReadHeader and WriteHeader.  Renamed ReadArraySimple to Read, same with Write.
Added PackFilesPacker that can rebuild the Files test files.  Also added CopyDir to FileUtil.
Added a sorted array class.
Removed MapPtrTemplate.  Added MapBlock.
Fixed MapBlock.Get().
Added a basic Remove method to ArrayBlockSorted and MapBlock.
Disallowed duplicates in maps.
Added file reading and writing to ArrayBlockSorted.
Added iteration to MapBlock.  Added file reading and writing to MapBlock.
Added MapStringBlock that keys by a string into a variable sized data.
Made AssertMD5 NULL safe.
Converted MapTemplate to extend MapBlock.  Converted MapStringTemplate to extend MapStringBlock.  Renamed Map.GetWithKey to Map.Get.
Allow empty properties in the properties file.
Allow overwriting of existing data in ArrayBlockSorted.
Added just plain .Get as a method to MapBlock.
Refactored reading and writing methods in MapBlock.  Fixed MapStringUnknown.
Protected members is ListenerCall.