Support transactions in active_record and in_memory backends

When the database supports it, allow PolicyMachine operations to be done transactionally, ActiveRecord style:

```ruby
@policy_machine.transaction do
  @policy_machine.create_object(o)
  @policy_machine.create_object_attribute(oa)
  @policy_machine.add_assignment(o,oa)
end
```

Spec output is now: 
Finished in 50.53 seconds
699 examples, 0 failures, 4 pending

with the 4 pending being neography transaction specs; neo4j 1.9 doesn't support transactions, and something about our adapter doesn't play well with neo4j 2.0.