[Do not merge] Use tornado to grab a random port

### Motivation
There is no reason to reinvent our own random-port-allocation; `tornado` has us covered.

### Changelog
* Use `tornado.netutil.bind_sockets` to bind the `HTTPServer` socket(s).
* Refrain from port-scanning when user explicitly provides an HTTP port.
* Trigger search for a random port by specifying port `0` as the target port.
* Drop all special-purpose code related to searching for a random port.
* Some style fixes.

### Note
The PR is ready for review. Do not merge until the launcher PR is in.