Session management using behaviors instead of IManageUnitsOfWork

Still WIP

@johnsimons please take a look