Do id freeing on rollback

This PR fixes so that transaction rollbacks free up the node and relationship id's that were allocated during the transaction. They will only be reused on restart though, as before.
Only node and relationship ids are allocated up front, the rest are allocated on commit, i.e. when converting tx state into record state. The only scenario where "the other" record ids would need to be released is where tx state --> record state conversion starts, some records are created and then something throws exception, aborting the commit (perhaps a deadlock exception when acquiring "late" locks for relationship creations). And in that case the rollback code should have a look at the present record state, i.e. which records we managed to allocate before getting aborted. That plus the pre-allocated nodes and relationships.