Abstracted TypeMapper to BaseTypeMapper to provide more flexibility in
validation
100% test coverage for TypeMapper and CollectionTypeMapper
Moved m.py to tests module to avoid it being registered in coverage
pep8