Rewrite of module

Full rewrite.

No chunked uploading, streaming files from disk (without loading them into memory) only.  Left methods in the Streamer class that will facilitate chunked transfer encoding if and when it becomes available in the web-core API.

1. Moved the code into a library, upstream (this makes upstream the foundation of a web-core Python API)
1. Added a setup.py with `upstream` entry point for uploading/downloading
1. Rewrite of nearly every class
1. Removed shredder class
1. Docstrings on every method.  Every parameter, return, exception, etc is covered.
1. Added new exception classes to be more descriptive
1. CLI client, just run `upstream --server {upload,download} --args