Use esprima.parse in hot parentheses test loop.
Make Path objects reflect complete paths to nodes.

Previously, a Path reflected only the sequence of Node objects along the
path from the root of the AST to a given node, skipping intermediate
properties such as arrays, and forgetting followed properties.
Check Path property names instead of relying on reference equality.

Technically the same node could appear more than once as a child of a
given node, via different property names.
Factor out NodePath subclass of generic Path base class.
Add tests of the Path abstraction.
Simplify findReprints by relying more heavily on the NodePath abstraction.
Merge pull request #40 from benjamn/complete-path

Maintain complete Path information during reprinting