Major refactor of swiftly.cli

Changes to swiftly.cli:

This is a major refactoring of swiftly.cli. The module was getting
pretty hard to manage so I split it up into various pieces inside a
package. Because things changed so much here, I think it's time to
bump to version 2.0 on the next release.

I can't list all the changes to swiftly.cli here without including
almost all the code; so just go look at the code.

Changes to swiftly.client:

Even though swiftly.client has also been promoted to a package, the
external use of it really hasn't changed. It just seemed like a good
place to put the brand new ClientManager and I didn't want to add yet
more to what was a single file. I will probably split
swiftly/client/__init__.py out a bit more later.

There was a bug fix to case-mismatched output headers; previously it
could send out User-Agent and user-agent for example.

Verbose output got a bit more verbose by including the headers sent.

More Exceptions are now caught; courtesy of IAD closing my
connections mid-stream so often.

Also, get_account and get_container have a new decode_json option.
This defaults to True to retain the previous behavior but, if set to
False, the resulting contents will be the raw response body instead
of the decoded JSON.

And there's the new ClientManager and IOManager classes. The
ClientManager is created just like Client, but then you ask the
manager for clients to use and put them back when your done. The
IOManager is just an oddity that makes swiftly.cli a bit easier to
implement.

Changes to swiftly.concurrency:

This has always been a bit of work-in-progress. It has changed to
capture any Exceptions and Timeouts and return that information as
well as actual results. Anybody using this (which is probably nobody
but Swiftly itself) will have to update accordingly.

Changes to bin/swiftly:

The command line tool itself, swiftly, really hasn't changed much in
its usage. There is the exception that -I has gone away for deletes,
posts, and puts. Instead, -i now supports a single dash as
representing stdin and representing you want a body even when one is
not normally used. So what was "somecommand | swiftly delete -I" is
now "somecommand | swiftly delete -i -" and what was "swiftly delete
-Ii somefile" is now "swiftly delete -i somefile".

There's a new environment variable option, SWIFTLY_CONCURRENCY, so
you don't have to specify --concurrency all the time.

The auth command got a bit more information.

The get command got a new --remove-empty-files option that is pretty
useful in conjunction with --sub-command. It just removes any files
it stores on disk that end up empty (presumably after having gone
through a sub-command filter).