Make Impl.getHashCode Closure Compilation Compatible

Impl.getHashcode is used by JavaScriptObject to attach
identity hashcodes to native JavaScriptObjects. This adds
a visible $H field to the object. Various libraries that
iterate over Javascript objects, including JSON or ProtoBuf
libraries, attempt to skip keys named '$H'. Unfortunately,
when Closure post-compiles GWT code, it renames the o.$H field
to something else, breaking this filtering code.

Ultimately, the real solution is to use Object.defineProperty
to make these expando fields non-enumerable (and immutable),
however that currently doesn't work on IE8. Therefore, this
change is a workaround that is backwards compatible with older
browsers for the time being, that preserves compatibility, but
allows closure advanced compilation to work properly.

Change-Id: I535ee73d62f29e33c51766ebcd1102098cb3e78f