-Made many improvements to sprawl::serialization::JSONToken
-Completely rewrote sprawl::serialization..:JSONSerializer to be implemented in terms of JSONToken, got rid of previous terrible parser
-Fixed various bugs in HashMap and added some missing functionality
-Fixed a major bug in MongoReplicable() that would cause state to be corrupted if Discard() were called on it
-Added a lot of additional functionality to iterators, allowing them to be used in multiple ways. Unfortunately, had to remove the guarantee that iterators would not be invalidated by removing them from the map.
-Replaced a few usages of std::string with sprawl::String in the serialization code
-Added operator+(const char*) to sprawl::String
-Added operator+= for both const char* and sprawl::String to sprawl::String
-Made HashMap's index template arguments 0-indexed instead of 1-indexed (as they always should have been)
-Fixed a bug in sprawl::StringBuilder where a string that is not properly null terminated, but has a length specifier, would not print properly
Resolve merge conflict.