Replacing INode/IConstructor's annotations with a more flexible and reusable generic type-class like approach.

Bumping the version number to 0.4.1 to indicate the API change. Work in progress.
Documenting and generalising the default annotatable view on IValues.

Fixing issue with wrongly delegated dispatch method.
Fixing issue with not wrapped values in annotation view, after mutation.
Remove wrapping if setAnnotations is called with an empty map.
Use new annotations API in value factory instead of calling (deprecated) specialised class.
Returning read-only version of internal map.
Specialised java.util.Map implementations for dense representations of maps.

* Introduction of ImmutableMap interface.
* Still To Do: remove AbstractMap inheritance of specialised Maps.
Removing AbstractMap dependency from specialised map entries.
Substituting dependency to ShareableHashMap with Map interface.
Adding readable String representation by forwarding to enclosed content.
Streamline generics of immutable putAll to make the same as for Map.putAll.
Supporting stable insertion order.
Adding Map specialisations up to 5 elements.
Adding correctness conditions for for object construction.
Removed last reference to ShareableHashMap.
Removal of obsolete specialisations.
Merge branch 'free-annotations'. Closes issue #25.