Base node type now has a name identifier

This will mainly be used/useful when printing out nodes for debugging
purposes. The name will thus provide us with a way of easily identifying
nodes without having to resort to weird hacks to grab the relevant name...
Add flag to allow for the possibility of having a dynamically allocated name for nodes

The purpose of this flag is just to make sure we have a way of ensuring that
we don't have any memory leaks from unfreed heap names...
Completing up the trio of outer node types - "Interblock" type now defined too