Fix __proto__ leaked as an enumberable on Object.prototype

As Prototype.js would go on to show, anything you leak a enumerable property on every object by adding it to `Object.prototype` you pretty much break all JS.

In environments that don't support `__proto__` (IE), this "prototype swizzling" hack defines `__proto__` on `Object.prototype` as an **enumberable** property. The bug is only surfaced when `extends` is used.

Though, it also seems like this loop is supposed to stop before it rejects a `nativePrototype`. I'd rather not see `Object.prototype.__proto__` not set at all, but I'm not sure what kind of black magic this hack depends on.

/cc @azakus @zenorocha @arv