feat(canvas): map modeling hierarchy to SVG

This changes the way diagram-js represents graphical elements
as SVG nodes. By grouping child elements with each element it is now
possible to update the containment of elements that were touched during
move.

Closes #56