Mapillary merge

Squashed 53 commits in #2324 into one - need to review to make sure that git magic was correct.
This should be `surface.selectAll('.layer-hit').selectAll('g.image, g.sequence').remove()`.

Rationale:

* As a side effect, `select` propagates data from parent to child. It should be used only in cases where you want that behavior.
* `select`/`selectAll` return an empty selection. They will never return a falsy value so there is no need for an `if`.
* Removals can be done in a single operation with a compound selector.