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.
I'm not entirely sure what the defined behavior here is supposed to be, but this is probably launching two processes or one of `cmd.Start()` or `cmd.CombinedOutput()` is a bad actor according to the golang documentation as both will launch processes.

reference:

http://golang.org/pkg/os/exec/#Cmd.CombinedOutput
and 
http://golang.org/pkg/os/exec/#Cmd.Start