Added transaction support for restoring associations

I extended the gem to add transaction support for restoring associations. It stores a transaction id for every version change done inside of a transaction. (transaction id is version id of first change). It works pretty well for me, but haven't tested it with complex scenerios yet.

You can list other versions in same transaction by  
 	version.transact

When you want to restore model with associations (eg other changes made in the same transaction) do

 	version.rollback

It's like impossible to put all associations in memory with correct relations. Therefor the rollback function, that undoes the initial transaction in reverse order. The rollback function uses save! to throw an exception on invalid validations. It should however pass validations if you never have failing validations on models in your database. As a last resort you could also skip validations by changing to save(false). But i don't want to remove validation if it doesn't cause any problems 

You can also do a virtual transaction by:  
	PaperTrail.start_transaction
	#make changes
	PaperTrail.stop_transaction