WIP on observable module.

-Comparing my original implementation with Steve's.
-Adding some missing APIs
-Improving the existing API
-Work left to do on arrays.