(PUP-1028) Specify various ways of matching nodes

There were no tests that tried to specify how node statements are selected.
This adds coverage for various ways in which a node statements can match a
given node object and varifies that the future evaluator and the current
evaluator produce the same results.

There are 2 cases where the future evaluator isn't able to handle the same
node statements: using numbers. One case, where a name begins with a number,
seems completely reasonable. The other case, where the name is a valid
number, seems like an arbitrary restriction and so we need to discuss.