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.

I don't think this `@:allow()` is necessary?