implemented the transaction handling storage engines as Strategies. (Not
quite sure if those actually fit that term). The abstract classes define
the transaction handling and the user can then implement type specific
storage methods.

pom.xml: added the deps for neo4j (for the transaction handling)