Allow start, stop, and restart to be queued without waiting for completion

This enables clients to invoke start/stop/restart without having to wait
for stop (which could be multiple seconds) or start (which for fork jobs
could be tens of seconds), or restart which adds both.  

I wasn't sure what comments would be appropriate - would be happy to define
the methods in more detail.