chore(core/Canvas): clean up api

This commit cleans up the api exposed by the canvas.

BREAKING CHANGE:

* rename Canvas#getRoot() -> Canvas#getDefaultLayer()
* rename canvas.init event members (root, paper) -> (viewport, svg)

Related to bpmn-io/bpmn-js#151
feat(canvas): implement root element concept

Each canvas has a root element that denotes the diagrams root.

It is implicitly created unless set via Canvas#setRootElement() prior to
importing other elements.

Related to bpmn-io/bpmn-js#151
feat(interaction-events): fire generic element.* events

This commit refactors the eventing internals by
firing generict element.* events instead of the custom
shape.* and connection.* events.

It also removes the canvas.* events in favor of element.*.

The events emitted from now on are

* element.hover
* element.out
* element.click
* element.dblclick

Each event receives a tuple { element, gfx, originalEvent } with the event context.

BREAKING CHANGE:

* canvas.*, shape.* and connection.* events have been unified to element.(hover,out,click,dblclick)
* the original event passed to the listeners is now exposed as event.originalEvent (was the event itself)

Related to #57