added more documentation and improved 'map' implementations

Previously, the map implementations for Array and Object,
did not line up as being the same. Now they are.

I have also added a lot more documentation, to better explain
what the methods actually do.