Enhanced the repository concept

Pulled context and saves outside of the repos, now to be controlled from
outside. Now works well with transaction scope as well. On commit
changes get pushed back to the original objects. I hate this but its
necessary for morons who like databases that generate keys for them.
right now it copies everything, it probably should just push the keys.