Refactor HTTP::Server to support Universal Port:
These changes are necessary to support the Universal port feature. Synopsis:

* Persist HTTP peer io_service::work lifetime:
This simplification eliminates any potential for bugs caused by incorrect
lifetime management of the io_service::work object.

* Restructure Door to prevent data races, and handle clean exit:
The Server, Door, Door::detector, and Peer objects work together to
correctly implement graceful stop and destructors that block until
all child objects have been destroyed.

Cleanups:
* De-pimpl HTTP::Server
* Rename ServerImpl data members
* Tidy up HTTP::Port interface
Add new Handler interfaces
Add HTTP::Writer interface:
The Writer interface allows clients to supply a "pull" style object to provide
responses to HTTP Requests. The interface is designed to support a coroutine
based implementation.
Use ssl_bundle in SSLPeer
Call HTTP Handler with legacy peer handshake
Construct Overlay::Peer with ssl_bundle and legacy handshake
Pass legacy peer handshakes through Overlay
Add [server] section in rippled-example.cfg
Add [server] parsing code
Rename to legacy_context
Pass Config in setup_RPC
Remove unused struct
Check port protocol in legacy handshake detect
Use port settings in ssl detection
Check protocol in SSLPeer
Adjust timer scope
Use shared_ptr for context in SSLPeer
Set shared context in Port
Use [server] config settings
Clean up unused Port interfaces