Initial work on NodeDiff
Moves NodeDiff, creates SequenceMatcher
Merge branch 'master' of https://github.com/jruby/jruby-parser into node_diff
Skeleton for Diff functionality.
Begins documenting new classes.
Merge branch 'master' of https://github.com/jruby/jruby-parser into node_diff
Begin adding specs for NodeDiff and SequenceMatcher
Flatten children methods and test.

Undoes hours of overthinking things.
Count node complexity.
Creates Change class.

Finally found the right data structure for collecting and returning the diff information.
Adds isSame

Begin adding `#isSame()` methods to all Node classes
which need it for Diff. These two were put in place to test
out some prototype Diff code, but will work.
Diffing algorithm.

Wrote the main body of the diffing algorithm. There are many
conditionals and it may be possible to simplify or refactor, but
it provides the framework for building out a semantic diffing
utility.
Check our diff for moved changes

We cycle through the diff to see if any of the Changes stored
were actually just moved. Will probably actually store these in a separate object, but for now we are not.
Some cleanup based on @enebo 's recommendations.
Continue filling out diff functionality. Getting closer.
More diffing based changes.
Changes to SequenceMatcher for Diff
SequenceMatcher better able to handle moved code

This is a big improvement, but I've only just realized
that a part of my approach has been wrongheaded. I need
a way to measure the distance between two nodes, and
can probably discard these ideas about complexity and
depth. A simple levenshtein distance taken on the raw
strings may be enough, or I may have to come up with
some measurement specific to an AST.
Begin filling in isSame() method for each nodetype.
Merge remote-tracking branch 'remotes/upstream/master' into node_diff