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.
introduce a pathCache for various costly and constantly repeating tasks
actually cache normalize on the container, so it gets all resolvers.