feat(drag/snap): add move indication + snap line transparency
feat(core/Canvas): cache viewbox
feat(modeling): rework diagram interaction

This commit completely reworks the way users interact with the diagram

* rework selection behavior + extract into
selection/SelectionBehavior component

* add real touch support zoom/scroll + palette/context-pad

* make dragging autoStart configurable

* prevent dragging ghost click

Closes #60
feat(snapping): lazy init snap lines

This puts snap lines on top of the diagram elements by lazily
initializing them when needed.
chore(dependencies): upgrade karma-browserify