feat(core): remove commandStack from viewer

This commit removes the command stack from the diagram-js
viewer by making the addShape/addConnection operations
irreversible.

Modeling components must use the diagram-js/lib/cmd module
and implement add/remove/modify commands on top of the exposed
commandStack and the raw APIs provided by the canvas.

This ensures we keep the code base as small and clean as possible.

Related to #41

BREAKING CHANGE:

* Canvas#addShape and Canvas#addConnection are no more undoable via
the commandStack
* The Add(Shape|Connection)Handler has been removed
feat(Canvas): return added shape/connection

Instead of the canvas instance, return the added (and
possibly extended) shape/connection in Canvas#addShape and
Canvas#addConnection.

Related to #41
chore(features/move): remove until implemented
feat(model): implement diagram-js data model

Closes #43
feat(core/Canvas): add remove methods

This commit adds low-level shape + connection remove methods.

Related to bpmn-io/bpmn-js#6
feat(features/modeling): add basic AppendShapeHandler

Related to bpmn-io/bpmn-js#6
chore(core/EventBus): swap callback and priority

BREAKING CHANGE:

* EventBus#on(event, callback, priority) ->
  EventBus#on(event, [priority], callback)
chore(cmd/CommandStack): factor out registration into prototype