pmctl: add a control CLI to pm and supervisor

@sam-github @kraman I merged #14 too hastily, it seems. I've reverted it, re-branched, and cherry-picked the original commit.
Fair enough. If it breaks again though I'd split the sync stuff into a child process, so it can still be sync and not interfere with master or the pm sub-process. All these async.series I've been putting everywhere are getting me down.