More work fleshing out graph building...
Removed code to initialise components when creating ID Ref

This causes problems when building the graph and we don't initialise the
id ref first, resulting in double-ups. However, initialising ID's first
is kindof painful when dealing with some of the usecases in graph building
that we have
All component nodes now have "add_to_graph()" callback

This is needed now since they are created directly when building the graph
Added "validate_links()" callback to node typeinfo

This callback is used to ensure that all "builtin" operations and/or
relationships between components used to enforce certain valid-evaluation-
order constraints are satisfied. Having some of these in graph building
would be a bit too much of an extra burden to have, when much of these
are pretty much standardised actions that must take place.
Add component to ID node