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.
Just to be clear, I'm not arguing that we need to change this usage right now, or at all.  And, yes, the destructor must have the final say.  I'm just thinking that we might nose around for current best practices (you probably already have, Vinnie) for shutting down a multi-threaded application.  I just scanned through the contents of "C++ Concurrency In Action" and nothing jumped out at me.  I'll ping Howard to see if he knows someone with an opinion.