test: use ephemeral ports in test servers

Defaulting to 3000 creates test instability, the ports may be in use.
run: unlink control channel on startup

Its the only robust way, there is always a way to kill sl-run that
prevents it cleaning up on the way down, and that leaves us at startup
with a choice of not starting the channel (breaking runctl), or erroring
out (breaking sl-run), or this: unlinking.
test: refactor runctl test into a helper module
runctl: support start and stop of object tracking