Add polyfill for Object.keys to WeavePath
Added buffering of addkeys/removekeys actions to WeavePathData; put key-related functions and shared vars into a separate namespace.