Change polling implementation
Change polling implementation

Previously, we simply picked the first port that
container.NetworkSettings.PortMappingAPI() gave us. Unfortunately, that
turned out to not deterministic and broke when we introduced a
TLS listener.

Now, a poller is started up for every port. If we get back a malformed
HTTP request, we know that port is not prepared to recieve HTTP
requests, and give up.

The first poller to succeed wins.

If all pollers have exited, we return an error.

scraperwiki/hanoverd,sensiblecodeio/hanoverd,sensiblecodeio/hanoverd,scraperwiki/hanoverd