cache costly firstSegment extraction
cleanup as i read
cache isGlobalPath
ensure Binding doesn’t change shape on us by predefining its members
speedup map

map now uses a dictionary as backing structures, this enables us to safely use x[y] for existence checks rather then in, and enumerable without needing slow hasOwnProperty checks. Also prefer super properties existing directly on the prototype.