Session interface cleanup

This branch modify the commit_or_abort context manager to be used without specifying an error.
It's behavior in that case is to rollback and raise the exception back.

The branch also use commit_or_abort where a session session.{begin,commit} was used and self.add
in unittests

2 useless unittest modules are also removed