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%.
This was required because `getter` has different behaviour for csp vs non-csp when passed null. If you look at the first few lines of the getters...
csp (returns null):
```
var pathVal = (locals && locals.hasOwnProperty(key0)) ? locals : scope;
if (pathVal == null) return pathVal;
```

non (returns undefined):
```
if(s == null) return undefined;
s=((l&&l.hasOwnProperty("a"))?l:s).a;
if(s == null) return undefined;
```

This seemed like the easiest for now but I think it would be better if the getters were more consistent (I haven't put any time into looking into this yet though).