Better error messages!

This PR enhances current error messages and fixes a cleanup issue.

* check that port is available before starting a process; old logic would start regardless, then timeout (or worse, actually connect to the wrong process)
* several error messages point directly to the log file where you can find more information
* when a process crashes, show it's stderr content as part of the error; old logic would timeout waiting for the port to be open