Change the way PropertyChanges checks a value change

The value that was checked against the current value was the value given in the setter, this doesn't account for logic in the setter that changes the final value to be stored, (e.g.: set: function(value) { this._value = value * 2 }).

With this change we first call the original setter of the object and then get the value again to obtain the computed value.
Fix listener documentation
0.1.14
Always return an array from range-change Array splice
0.1.15
Update demos

Fix dependency cycle between array shims and generic collections. Fixes

Make logging for Map, SortedMap, SortedSet consistent, using logNode
methods.
Improve iterator test coverage

-   Fixes various iterator bugs
-   Gets rid of redundant implementation of filterIterator
-   Switches test coverage framework to Istanbul
0.1.16
You may call "iterator" to call "iterate".

My consession to madness.
Improve error messages for property change observers on non-extensible objects
Plug a hole when comparing nulls in Object.equals
0.1.17