* add pub sub client implementation with examples
* replace subscribed_channels list Vec with HashSet to avoid duplicates
* update Subscriber to use async-stream instead of manual Stream impl
* revert update to error handling server.rs, as #21 handles it
* remove uneeded recursion limit extension
Handle accept errors using an exponential backoff strategy. Also uses a
semaphore to limit the max number connections.
Adds inline documentation and comments.
Continuation of #11. Refines the client structure and implements GET.
`clap` is decoupled from the lib code. This is done to avoid any CLI
parsing concerns to leak into the lib. The main motivation for this is
to allow the reader to focus on Tokio concerns and not CLI parsing
concerns.