fix($parse): a chain of field accessors should use a single getterFn

I caused this in fbad2805703569058a4a860747b0e2d8aee36bdf :unamused:.  Essentially `(EXP).a.b.c` should have two nodes `(EXP)` and `.a.b.c`.  That commit refactored how `a.b.c` gets tokenized/parsed causing the nodes to be `(EXP)`, `.a`, `.b`, `.c`. This slowed down the field access benchmark ~20%.
Can this be looked into later? I agree it would be nice but it will require a bigger change that I think should be done in a different PR...