rewrite graph extender

The graph extender now uses plugable strategies to provide precursor
actions and properties providers. This allows better control over the
extension behaviour. Default implementations include basic provider
which essentially just delegate requests to a repository and collect the
results. More sophisticated providers compose actions so that they
satisfy as many requests as possible.
switch to Guava 17.0
fix incorrect test name
add cyclic dependency detection to graph extender

By detecting cyclic dependent actions the graph extender can prevent an
infinite extension loop by excluding any cyclic dependent action from an
extension level.
extract models into separate module
fix action creation tests
fix test of action representation to consider equal actions
add interactions to action model