This fixes a few issues:
1. before: checked first key in applyTags and break loop, now: check all of them
(this was what caused `area=yes` to be added to 'branded' presets:
the first key is for these is `name` which isn't in areaKeys.)
2. add `area=yes` if user is drawing an area but the preset can be an
area or a line (e.g. `barrier=city_wall`)
3. remove `area=yes` when switching to another preset
The default behaviour is to overzoom overlays past their max
scaleExtent. When 'overzoom':false is defined in imagery.json,
the layer will disappear on the max scaleExtent.
Also, a few optimizations:
* don't redraw the minimap unless mainmap dispatched a full redraw event
* don't recenter mainmap on zoomend unless minimap actually got panned
* don't try to fetch newly created childnodes from the remote server
* a modified way with new childnodes will safely merge, but will
return the same graph (no diff), so check conflicts.length instead
It will also be much faster to fetch the remote entities in batches
rather than one at a time through LoadEntity.
One bonus/hazard with Multi Fetch GET is that it will get deleted entities
with `visible=false`, rather than returning a HTTP Status Code 410 (Gone).
This will be the only way that we can really do proper undeletion
(Incrementing the current version by 1 is not guaranteed to work. And
if a way is moved, fetching way/full will tell us whether the childnodes
are part of the way, but not necessarily whether they exist or not.)
We must be careful never to merge deleted entities into the real graph.
e.g, a deleted node will not have a 'loc' attribute, so code that assumes
every node must have a `loc` will be broken.
So because deleted entities are very special, the output from `loadMultiple`
should only be used for conflict resolution for now.
* working Previous/Next buttons
* remove behaviors from save mode
(users should not be moving nodes around or selecting at this point)
* clear hover before hovering next object
* enable save button and finished message after reviewing last conflict
* store users choice in __data__.chosen..
* default choices to `keep remote version`
* better message for delete conflicts
* fix undelete action to check localGraph (which will have the entity)
instead of context.graph() (which may not)