improve(overlays): simplified API

For now #getOverlays(), #addOverlay() and #removeOverlay() belong to the public API.

BREAKING CHANGE: #addOverlayToElement() and #registerOverlayType() are removed from public API
feat(layout): add connection layout utility

Related to bpmn-io/bpmn-js#2
feat(features/modeling): add shape move and connection layout handlers

Related to bpmn-io/bpmn-js#2
fix(core): ensure element is available during draw

By adding a shape / connection to the registry before updating it we
make sure it is available during update / layout.
chore(layout): cleanup unused code
chore(command): rename cmd -> command + fix docs
chore(layout): rename ConnectionLayouter -> ConnectionDocking

This is to avoid confusion (because of the Layouter) part in the name.
test(layout): add low-level intersection test
fix(layout): compute cropped connection based on shape position
fix(layout): recognize close together intersection points