Proper abstraction of Module store base class implemented

Read/Write inheritance split up into separate base classes
Merge pull request #1545 from edx/slater/mixed_mongo_abstract

Proper abstraction of Module store base class implemented