Updates Dictionary tests to use certain keys that often cause problems in JavaScript dictionaries
Prefixes all Dictionary keys with "$" before inserting/retrieving from the underlying table to fix a bug where Dictionary could not store a value with the key "__proto__"
Changes `defaultToString` implementation to fix a bug where Dictionary
would store `null` under the same key as `"COLLECTION_NULL"`, and
`undefined` under the same key as `"COLLECTION_UNDEFINED"`
Uses a safe reference to Object.prototype.hasOwnProperty to fix a bug where Dictionary could not store a value under the key "hasOwnProperty"