Improvements to ReadOnlyCollection support.

The issue is when the object is mapped a second time.  The ReadOnlyCollection mapper is using the existing IEnumerable and as such is throwing an exception and not modifying anything.

This code modifies the ReadOnlyCollectionMapper to create a new ReadOnlyCollection<> each time the property is mapped.

Closes #290