When extracting a POI from a building or downgrading a building, this update keeps nycdoitt:bin= tag with the building, not extracts it to the node or deletes it.
resolves#8539
Make context the first argument of operation objects
Add Paste operation to edit menu when opening the context menu on a blank area of the map (close#2508)
Consolidate localization behavior and init to a coreLocalizer function and singleton
Explicitly support `en-US` locale
Rename coreData to coreFileFetcher and export a singleton rather than using a property of coreContext
Add `apiConnections` property of coreContext to simplify adding a source switcher
Replace some init functions with re-callable, promise-supporting `ensureLoaded` functions
Make coreContext itself load the UI if a container has been specified at init time
Fix code tests
- preset data is no longer bundled into iD.js
- some code pathways commented out re: external presets
- many changes so that tests can run without presets at start, or async
- still need to make sure fallbacks are always there (point, line, area, etc)
This is cleaner than adding hooks to transitionable actions, or performing validation
on every history change. We want validation to run after each operation, but not
while the user is drawing lines or typing in fields.