chore(core): refactor EventBus to use prototype
feat(core): add Canvas marker methods
feat(move): consistently add <djs-dragging> marker

This commit ensures we consistently add the <djs-dragging> move marker

* on all dragged shapes
* on dragged shapes overlay containers

Closes #47
feat(selection): apply selection/hover as markers

This uses the newly added Canvas#(add|remove)Marker API to apply the
selection and hover classes as markers.