Interface for a ValueNode that has logic that determines when its finished. A node should be
considered finished when 1) its inputs are also finished (i.e. won't change) and 2) it won't
output any new values of its own.
For example, a SpringNode is considered finished when its inputs are finished and the
spring is at rest. A TimingNode is considered finished when its inputs are finished and
it's reached the end of its duration.