Removed deprecated sanity assert.

This was used to ensure all node connections have been "relinked", but
with the new separate node/ops graphs this check becomes meaningless
and would fail in every case.
Moved socket registration for connections out of the connection
constructor/desctructor. This causes issues with new/delete otherwise.

Eventually connection storage in sockets should be removed entirely,
it is totally redundant and makes things more complicated.
Moved the NodeGraph class into its own file.
Automatic input default values.

This works by connecting each operation input, that is not connected
after compiling the node graph, to a Set***Operation. Could be improved
later by storing default values in the sockets themselves, so we don't
have to keep bNodeSocket pointers around in the operations graph.