nodes: Add node interface
nodes: Add node interface

It makes sense to have this interface because we have two kinds of
nodes: those that are part of the graph and those that are part of the
forest (+graph).

We still have the problem that graph_node_properties are taken from the
node and copied to ports on construction. This makes it impossible to
pass the fullname to ports for forest nodes because during construction
the nodes are not in the forest yet.

If we passed around shared_ptr's to the interface this would be easier
to do.

CasparKielwein/flexcore,FlexCoreLib/flexcore