Added logic to move links by its head.

Moved a bunch of logic from the NodeGraphContext to the NodeGraphState.
The NodeGraphState now keeps track of the current group, selected drawables,
and drawable that shoud be deleted later.
The NodeGraphState will deleted the queued items at the beginning of each draw_gl call.

When a link head is now close to an input plug after moving it will get queued for
deletion by the LinkDrawable. Then on the next draw call it will get deleted.
The reason whey the LinkDrawable cannot delete the link (hub) is because it the
LinkDrawable is itself a part of the link hub.

Moving a link by it's tail is still left to do.

The hit testing interface has been modified back to taking a vector of size 2.