Consolidation of Array
index operation tweaks in Array
remove Array.Range invariant

Because it created probes in ~this and opAssign :(
Fixes for Array.GC

1. Re-implements Array.length to first call reserve (makes sure everything is correctly re-allocated).
2. Copies over 0 when something is removed from the array, so the GC does not incorrectly keep seeing pointers.
Migrate to RangeError