Fixes bugs in Dictionary caused by certain keys

Dictionary has bugs when attempting to store items under the keys "__proto__" or "hasOwnProperty".  This PR fixes those bugs.  I've modified the dictionary tests to test these corner cases and fixed the code so that the tests pass.