Solve case below:

L1_1 -> L2_1
L1_1 -> L2_2
L1_2 -> L2_1
L1_2 -> L2_2
L2_1 -> L3_1
L2_2 -> L3_1

The problem was when L2_1 get created before L2_2,
regarding the previous implementation, at the attempt of creating L2_2,
it does not know that L2_1 exists and it tries to create a new one.
Add test for Join Descendant cae
Re-implement algorithm to resolve Action Graph from creation plan to use
just-in-time dependency construction instead of before-required-time
construction.

TODO: add test for case below

Definition:
L1_1 <- L2
L1_1 <- L3
L1_2 <- L3
L2 <- L3

Given Commands:
L1_1 <- L3
L1_2 <- L3

Where: the previous implementation may create two L2 in some case even
though the final context is correct, aligned to the given commands, we
don't want to create unnecessary entity.
Add tests for the case where it might create unnecessary entity
Merge branch 'master' of ssh://git@github.com/varokas/jpaQuery.git