Update Mapper to be more friendly to subclasses.
Adjusted DefaultMapper to reflect changes in Mapper, some previous
private functions are now protected so someone overriding a few methods
can access those methods.

moved a few fields from the Mapper to

MapperOptions added BasicDBList to ReflectionUtils. 

Adjusted MappedClass to use a Mapper interface instead of DefaultMapper

Fixed a few warnings