Minimize the amount of treatment of argv in 'cmd'

Remove some defaults and fallbacks about argv that were not used.
Because of the 'console_scripts' behavior of setuptools, 'cmd.main'
must be able to accept zero arguments and is going to read 'sys.argv'
anyway, which is also the default behavior of 'argparse'.

This breaks a use case of calling 'cmd.py' directly as a toplevel
entry point for the sake of testing, but no known parties do this.
Move pg_xlog test fixture to another file

Done in preparation to have it be shared with other integration
testing, and to communicate that it is a mechanism used by multiple
consumers (soon).
Add some black-box testing

For the first time, perform black box testing by (indirectly) calling
'cmd.main'.

The fixtures implemented here take of things like patching argv and
setting up a bucket to act as a target for the tests.

Besides improving coverage, the idea is that adding analogous
components to the class "AwsTestConfig" and then modifying
"_make_fixture_param_and_ids" will allow for easier, portable smoke
testing of more storage backend functionality.
Elide other backends besides S3 in requirements.txt

It's not clear how to make things cleanly optional but not a usability
nightmare (e.g. installing *no* backends by default for 'pip install'
based people) within the Python packaging framework, so don't try..for
now.