Make dependency solver constructor non-public
Add trigger/binding distinction to dep solver builder (refs #70)
Decrease merge method's dependency on graph.
Improve dependency solver comments
Simplify injection context & improve solver comments
Write infrastructure and initial tests for graph rewriting
Fix assertion that breaks the no-op test
Implement DAG edge transformation
Get dependency rewriting working (refs #70)
add missing license header
Node predicate and search improvements

- Implement BFS searches
- Make predicates more permissive with ? extends/super
Add BFS search for edges
Make qualifier matchers a predicate.
Properly deduplicate nodes pointing to transformed nodes

If two nodes referenced a node that references a replaced node, the middle node would get duplicated in replaceNode. This fixes that problem.