(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.
(PUP-1028) Improve grammar for node expression to accept numbers.

It was previously not possible to enter a name consisting of just
a number, or where one name part was a number.

e.g.
1.2.3.4
hello.1

This grammar change fixes this problem. Note that any segment must be a
valid name or valid numeric string. Also note that white space is
ignored.
(PUP-1028) Remove pending tests that aren't needed

The new parser has been updated to be able to handle nodes with numeric
names and so the test for that case now passes for both the current and
future parser. The only remaining case is when the name is an invalid
number. The future parser won't ever parse this correctly and so the
test has been changed to assert the desired behavior, in which the
parser fails.

The new changes to the parser also allows it to handle dotted names and
so a new test has been added for that.
Merge pull request #2630 from zaphod42/issue/master/pup-1028-shore-up-testing-around-node-statements

(PUP-1028) Specify various ways of matching nodes