Added Unit Of Work

Added new class for Unit of Work to handle the long running contexts.
Also, removed the save from IRepository and all implemented classes so
that saving is done by the Unit of Work context and not individual
Repository contexts.