merge-polygons: do not merge tags from all possible members

previously when merging polygons, all tags from all involved
members were merged into the resulting multipolygon. This includes
existing inner members with different tags or outer members that
are not directly involved in the merge operations.

Example: A forest (landuse=forest) containing some clearings
(landuse=meadow), whose outline is in part a river (waterway=river)
is merged with a new untagged area. The resulting multipolygon
would have falsely been tagged: landuse=forest;meadow + waterway=river
disable merge operation if at least one relation is incomplete

Incomplete multipolygons were harmed in the merge operation (which
relies on completely loaded relations to determine inner/outer
status for example).

This disables the operation and adds an appropriate tooltip.
Style adjustments
Expand tests
Fix jshint
Add shop=bookmaker and shop=lottery presets

Fixes #2126
Add shop=art preset

Fixes #2125
Use https where supported

Refs #2129
Fix tests
fix duplicate objects after restoring data from localStorage

This makes sure that the originals of changed entities get merged
into the base of the stack after restoring the data from JSON.
This is necessary, because the stack will only have elements for
the current viewport after a restart and previously *modified*
objects will now be falsely detected as *created* ones.

Also refactors to consistently use the property "version" and
removes some ineffective code.