split out agent classes

maestro_demo is added to the master node, where the demo compositions reside.
Typically for demos this is the same as the agent node, but not necessarily.
Split it out so it can be added standalone, but retain a backwards
compatibility check to include it on single instances.