Hit detection skips layers in invisible groups
Merge pull request #1943 from elemoine/ht

Hit detection skips layers in invisible groups
Do not return as handled unless a geometry was modified

With this change, it is more straightforward to determine
whether an event is considered as handled, which results in the
removal of the modifiable_ and lastVertexCoordinate_ states.
Instead, we only need to know whether we're on a real vertex or
a virtual one. For that a new snappedToVertex_ flag is
introduced.

To stop a click after vertex deletion from triggering a feature
selection, vertex deletion is now triggered by a configurable
event condition, which defaults to singleclick (same as in the
select interaction) with no modifier keys.
Use the pixelTolerance to determine whether to snap to a vertex
Better documentation for the singleclick condition
Add missing goog.requires; fix types and a typo
Initialize snappedToVertex_
Merge pull request #1914 from ahocevar/modify-event-propagation

Modify interaction breaks mouse wheel zoom
Provide a reference to the layer
Provide layer states array in frame state
Remove layers array from frame state
Make getLayerStatesArray return an array of layer states
Merge pull request #1949 from tschaub/layer-state

Give layer state a reference to the layer.
Externs lint
No markup in shortdesc

The example parser and index template don't handle markup in the shortdesc element.  Use the docs element instead.
Strip tags from shortdesc (et al.) when parsing

This strips markup from elements with id attributes that we care about: title, shortdesc, tags.  This will only work for people who use `npm install && npm start` to browse examples.  The other example parser doesn't strip this markup, so it should still not be used in these elements.
Merge pull request #1951 from tschaub/gjslint

Externs lint.
Merge pull request #1952 from tschaub/shortdesc

No markup in shortdesc.
Test canvas size with an untainted canvas
Do not shrink test canvas