pyro4 upgrade and redesign of pydpiper main loops; various code improvem...

This redesigns the pydpiper main loops by moving remote calls outside of the daemon loop termination checks, thus preventing some deadlocks affecting the previous code.  As discussed, we still use a polling model on the executor side, but I'd prefer to change this.  There are still various issues involving server and/or executors not terminating in various exceptional cases, e.g., the server won't shut down cleanly if a client hangs without unregistering first, but it should be relatively simple to address these.