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
chore(dependencies): upgrade jsondiffpatch
feature(outline, selection): allow selection of controls

Limitations: context pad is not functional for connections

See bpmn-io/bpmn-js#121
style(diagram-js.css): new outline style
refactor(outline): extract getConnectionBBox to util
feature(overlay): set correct positioning for overlays attached to connections

See bpmn-io/bpmn-js#121
WIP(styles): use crisp outline