Added support for fragile proxies

When proxies are added to the proxyInterceptors map, the previous `HashMap` collection called `proxy.hashCode()`, which may rely on internal state of fields within the proxy, since this isn't a setter, it calls through and potentially breaks.

In my case, it was a generated class that calls `field.size()`, and since `field` on the proxy object returns null, it triggers a NPE on `HashMap.put`.

The `IdentityHashMap` doesn't use `hashCode` for equality, but pointer equality, which seems ok given that you only use one proxy object for the lifecycle of the explicit mapping.