Property change listener efficiency changes

-   Using direct non-enumerable `__` prefixed properties instead of weak
    maps for fast access to change listener records and overridden
    property descriptors.
-   Method names and reusable active dispatch array now kept in book
    keeping to avoid recomputation.
-   Presumed hot dispatch loop factored into separate method to isolate
    from try/catch deoptimization.
-   Removed support for uninstalling property change listeners.
Like `splice`, `swap` returns a new array containing the removed elements. [see](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/splice#Returns) 
I don't think this saves much as far as memory allocation.