Fix an issue where already allocated ports will not trigger an allocation error

This is because the `docker-proxy` reexec does not communicate its exit status back to the parent. I have wrapped the `cmd.Start()` call with some stdio communication to facilitate propagating errors.

This IMO is less than ideal. I think we should implement a small protocol for reexec that would allow error propagation.

Also includes @tiborvass's test that now passes. :)

/cc @LK4D4 @crosbymichael @jfrazelle 
You should check that there is message about port in out. There are already funny always pass tests which just check err from wrong syntax :)
Also fatal message is not very clear, maybe should contain what expected in test.