Refactor Overlay, HTTP::Server for universal port

These refactorings are required to support the universal port.
Reviewers: @miguelportilla, @scottschurr

Ignore the top 3 (eefc5d9..0ebc9ee) they are from another pull request.
I've heard people argue against destructors (like this one) that stall.  A different idiom would be to require shutdown calls prior to destruction.  A destructor is a tough place to handle a problem because it has no return value and can't throw.