Replace all DAG_add_node() calls with DAG_get_node() calls in the graph building

This is needed so that nodes that others depend on can get added ahead of
time...
Added a new header for "internal" depsgraph API functions

These are mainly functions which can be used internally within the
Depsgraph, and/or are exported between various parts of the internals
but which shouldn't really be exposed to the outside world (i.e. other
parts of Blender outside of the depsgraph module).

Will review later whether this file is really needed or whether it can
be folded into some of the other headers)
Renaming "data" mid-level outer node type

Having "MID" in the name was a bit dodgy from an API standpoint in the
long run, even if that would have made things a bit clearer as to where
it stands between the levels.
First skeletal draft of the internal node management functions

* DEG_get_node() is fully fleshed out
* DEG_add_node() and DEG_find_node() still need to be figured out...
Change argument types for low-level node management functions

Apparently it is not possible to simply pass on the list of arbitrary
arguments down the chain that easily (where the list grows and shrinks
according to the needs of the specific API used). So instead, always use
the full version.

Alternative here is to just have separate copies for each case?
Draft stub for creating a group node (as necessary) during graph building