Break up database_fetch to aid in fault injection testing
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.
Beginning of some backup fetch fault injection tests