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.
The invariant is that all Door objects have to gracefully stop what they are doing. The destructor enforces that invariant. The alternative is to invite undefined behavior. Moving it from the destructor only changes the way the bug expresses itself. Someone forgets to call the stop function or whatever.