Refactor Stoppable:
The Stoppable interface aids in the enforcement of invariants needed to
successful start and stop a multi-threaded application composed of classes
that depend on each other in complex ways.
* Test written to confirm the current behavior.
* Comments updated to reflect the current behavior.
* Public API reduced to what is currently in use.
* Protected data members made private.
* volatile bool members changed to std::atomic<bool>.
* std::atomic<int> members changed to std::atomic<bool>.
* Name storage uses std::string
Add [server] section to cfg
Set http::message version with pair
Add headers::erase
Use std::pair for headers::value_type
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] 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