Node diff

There is a lot here, so please ask about anything.  @enebo please look especially at my tests. I feel like they are brittle and I could really use some pointers on how to improve them. 

In a twist of irony, just adding `isSame()` to all the nodetypes ended up being all I really needed to fix up rsense. Have not yet implemented `equals()` but that should be easy enough, since it is just adding a comparison of position info and then checking `isSame()`.