portmapper/proxy: refactor proxyCommand Start()

* Spawn goroutine for command start and combined output, error
  gathering. Send these back over send-only chans.
* Blocking-read from the channels for errors, bufs and a timer signal. If we
  get an error, bomb. If we get a buf, check it with a regex for the
  magic zero proxy factor (consider replacing this mechanism, imo
  :metal:). Generate an error if we get read off the timeout chan.
well, the problem with that is that if we don't get the exit code immediately, we don't know if it has successfully started until we try to shutdown the proxy. This is what causes the bug.