Moved DepsNode definition from the depsgraph_types file into a number of
dedicated source files.

To reflect the code structure while keeping the number of files small,
there are just 3 node files:
* depsnode: base DepsNode class and main general subtypes (root, idnode,
subgraph, time source)
* depsnode_component: component subclasses ("outer" nodes)
* depsnode_operation: operation subclasses ("inner" nodes)

The depsgraph_types.h header still contains a number of general enums
for the node subtypes, since this is needed in a number of other class
declarations (Depsgraph) as function arguments. Don't want to include
the full class definitions there to keep header dependencies at a
minimum.
Register node factories in the individual node type files.
Removed duplicate code.