Restructure project and add gradle build files
Fixup structure
Remove accidentally added broken test
Minor sync between javadoc and reality
Update .classpath for new structure
Add JUnit dependency
Fix bad format specification in NodeContextImpl.CacheKey.toString()
Organize imports
Don't reuse code from shallowEquals() in Node.equals() to please the static analyser.
Remove some redundant "final" modifiers
Use interface instead of concrete class in CharacterMatchers.match()
Add private constructor for utility classes
Refactor NodeMatchers.traverse*First() to save a few lines and to handle null path parameters gracefully.
Use the provided nodeCache instance instead of creating a new one.

This was a copy-pasteo. Might save us a few cycles when executing.
Rename local variable in Nodes.NodeBuilder.build() to avoid shadowing a field.
Add comments to empty catch blocks to show that they were intentionally left blank
Factor out Path element equality check.
Remove unnecessary re-use of parameter in Path.path()
Add support for Travis-CI