InMemory and NullStore storage implementations, test refactoring

InMemory primarily for testing
NullStore for nonpersisting engines, for example a slave node
Changed tests to use InMemory store