Transaction

This fork is 99% the work of @EgoH, I just added some unit tests for the has_many and fixed a few minor bugs. A few things to note:

1) Because the default behavior of the tests is to run everything inside the setup block as a single transaction, a lot of the reify association stuff was breaking (since it depends on transaction IDs). This was addressed before by using the method "make_last_version_earlier", I tried using the same kind of hack, but couldn't get it to work. Ultimately I just turned off the transactional fixtures.

2) I question how the reify_has_manys and reify_has_ones handled the create event. It seemed to me like they should have set child equal to nil (line 172 and 200 of version.rb), but if I'm missing something then please correct. 

3) I had to make some of the inheritance column tests more explicit since the transactional fixtures was turned off.

4) I only wrote some very basic tests for has_many, but now that they're passing it should be easier to write some more.