Object Versioning: adds and uses Object.isProxy

as not every object inherits from Object.prototype (and also not
every other object is created by Object.create or {})...

we'll keep Object.prototype.isProxy, at least for convenience