Minimize fancy air terminal clonning

In AirLoopHVAC::addBranchForZone, There was previously some attempt to clone the
last air terminal even in complicated AirLoopHVAC demand side branching involving
plenums.  Now the logic is simpler (and presumably but not tested faster) so that
air terminals are only cloned if you have a simple air distribution with
no plenums.  It seemed difficult to document the old method.

Several items have been cleaned up in this process including:

A new (for plenums) implementation of ::demandComponents now correctly returns the
single ModelObject when ::demandComponents(source,sink) are the same.
The new implementation was returning nothing.

ThermalZone::addToNode has been fixed so that you can drop on nodes
directly after an air terminal.  This has been a long standing issue,
but with cleanup and simplification of ::addBranchForZone it was
necessary to fix ThermalZone::addToNode.
Merge branch '63321724-PlenumBackend' of https://github.com/NREL/OpenStudio into 63321724-PlenumBackend