Allows iterators to iterate inherited properties from prototype.

Fixes #487.

This change is a hack to basically iterate up the prototype chain until we hit an internal prototype, like Object/String/Array/etc. This passes all tests and meets the common usecase of iterating property methods without adding more keys into the mix. This will tide over until #591 is fixed.
Instead of writing out all of that chaos, why not just copy the "builtin" check from my original patch? https://github.com/rwaldron/runtime/commit/3fc77429d44b3911dd6871faa20e16680ec491ef