Tab menu hooked up to creation routines.

The tab menu's selection iteration logic has been improved.
You can interate either via the mouse or the keyboard.
Creation is now triggered by hitting the enter key or clicking the mouse on a pill.

The filtering logic properly filters out pills.
Backspace removes characters from the filter string.

The tab menu can be canceled by pressing tab again or pressing escape.

The factories were restructured, as we were running in static const member initialization order issues.
The gui builders now inherit from the node builders.
This also avoids having to repeat all the static data like the builder ids.

The input and output nodes can now also be created right in the root group.
When they are created in the root group, the input and output plugs on the
input and output node respectively do not have drawables, as they can never be drawn.
The GroupGeoLoader has special logic to handle this when it cannot grab these drawables,
for example in unpack and hit testing.
Otherwise the input and output plugs will have drawables.
This might be a problem later when moving nodes between groups, but there should
never a case where we need to move input and output nodes as they form the interface
to the group.