fix(parser): Allow access to Map properties in expressions

Allow access to `Map` properties like `map.length`. Introduces changes
to parser and change detection.

Breaking change: map keys matching `Map` property names will now need
to be accessed as, e.g., `map[“length”]`.
Merge