InMemoryActiveDataContext (primary change)

InMemoryDataContext class now applies Id only when you commit. (Could break existing changes).
Some refactoring in InMemoryDataContext and ObjectRepresentationRepository.

Created separate class InMemoryActiveDataContext to support Unit of Work, allowing multiple data context to share data storage. 

If it wasn't for crlf, it may have been easier to clean up my changes so it is more clear. :(