Fix indexed fast paths for exotic objects
Previously, Object.values() and Object.entries() erased the concrete type of
an exotic receiver, while indexed property fast paths accepted any object
with the fast_array bit. Typed arrays could consequently be interpreted as
njs_array_t objects, causing invalid memory reads and writes.
The fix is to preserve the receiver type during enumeration and to use
njs_is_fast_array() for both indexed get and set fast paths.
The issue was introduced in
69072164 (0.8.6); the overbroad fast path dates
to
912ab387 (0.3.8).
This closes #1098 issue on GitHub.