Dramatically faster non-allocating version of StringMap

Dramatically faster non-allocating version of StringMap which sanitizes keys via a special ReservedWordIndexer object for illegal keys, making UnsafeStringMap unnecessary. It is neck and neck in terms of performance with the existing version of UnsafeStringMap, around 5% slower.

Reserved words that are treated specially because they are not allowed in Dictionary include all non-static members of Dictionary, per
http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/Object.html
and
http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/utils/Dictionary.html

I have a suite of tests that verify its correctness relative to the reserved word set and other odd words such as numerically equivalent strings and null. Not sure where to put those.

Oh right, forgot about how that works in Haxe