ExternalNode
An external node is a node whose behavior is controlled externally to the timeline graph (e.x. input from a user interface, update from a databse, etc...)
ExternalNode helps us keep track of all external nodes that have been created as inputs to a Timeline and their types so that inputs to external nodes can be randomly generated when running tests for a yafrl program.