feat(move): implement containment change (drag and drop)

Implements basic drop rules and drop interaction (during move).

Creates a new command shapes.move that is used to move a number of shapes (and the connected connections).

Related bpmn-io/bpmn-js#127
chore(draw): remove unneccessary check
chore(project): clean up dead code
fix(move): disable pointer events on dragged shapes
chore(test): use fixed test container height
chore(change-support): unify detection

Components that react on shape/connection changes only and are not
interested in behind the scenes action should always listen to the
shape.changed / connection.changed events that are fired whenever an
element got updated.

This should become the general pattern across all gui enhancing
components.
feat(rules): unify rules

This commit unifies the way we query and validate modeling rules across
diagram-js.

Rules are directly integrated into the CommandStack and may be queried
via CommandStack#canExecute(action, context). This is the direct peer of
CommandStack#execute(action, context) and should alwas accept a
similar action context.

Various components may query the CommandStack or access the rules via
Rules#allowed(action, context) (having a sligtly more speaking
interface).

To integrate into checking rules components must listen to commandStack
specific rule check events (commandStack.{ action }.canExecute).

A helper that provides the functionality is features/rules/RuleProvider.
It exposes rule checking via a simple interface
RuleProvider#addRule(action, checkFn).

Closes #55
chore(modeling): cleanup + tests for connection parent change
feat(rules): distinguish not allowed / ignore

Related to #55
feat(move): visually drag multiple shapes
feat(modeling): move enclosed connection with shapes

This commit enhances the MoveShapesHandler to move enclosed connections,
too.
feat(command): invoke post-execute listeners after command

This commit swaps the execution of post execute listeners.
They are now executed as the final step (after the commands own
postExecute handler) and may perform additional actions after the
default actions have been carried out.