Geometry experiments for drawing curved arrows.
Group relationships by the pairs of nodes they connect and draw arcs when multiple relationships.
Fix duplicate variable declarations.
Confirm dialogs with control-enter.
Cancel dialogs with escape.
Respect internal scale for relationship property attachment.
Introduce intermediate layout model.
Use layout model for nodes.
Method renaming and general cleanup.
Put relationship type labels at apex of arrows.
Delay shrinking and centering until end of drag.

In order to prevent annoying jittering.
Snap horizontally or vertically.
Wrap node captions onto multiple lines.
Use layout properly: do not repeat calculations.
Only parse node caption font-size once.
Fix alignment of properties on curved arrows.
Render each entity type in its own layer.

Makes it easier to achieve a consistent z-order in a volatile diagram.
Button for choosing graph style.
BREAKING CHANGE: arrow width now based on "width" instead of "border-width"
Use overlays to handle mouse events.

Node behaviour and relationships behaviour hooks dropped in favour of overlay concept.
New ring surrounds nodes, dragging it creates new relationships.
Shift-drag feature removed.
Nodes, node rings and relationships light up blue on mouse hover, via CSS.