[OPENENGSB-3631] add revert functionality

Unfortunately the pull request got much bigger than I thought, I found out that the whole loading of commits from the EDB wasn't working (never noticed that, since we never needed this feature before). So I had to do some reworks there. On the positive side: it works now better than before and it got a little bit more readable.

http://issues.openengsb.org/jira/browse/OPENENGSB-3631