Shorten default test bucket so STS policies can work

STS cannot make policies on "member" names over 32 characters.

Given the name of the test bucket is arbitrary, shorten it.
Unfortunately, it is more cryptic for purpose of inspection, but
so it goes.
Move AWS credential names to top-level in testing

To allow sharing by multiple AWS config parameter objects that may
deem it useful to scrub environment variables.
Refactor blackbox and how configuration and argv is injected

The goal is to allow the 'config' object to manipulate the argv under
test, rather than assuming the test should know how to construct argv
verbatim.

This reflects that argv can be used to set up some amount of WAL-E's
credential in addition to environment variables.

An upshot is that now that the 'main' procedure requires injection via
named fixture, also remove the magicalness of 'autouse=True'.
add --aws-instance-profile agument.

If this argument is provided, we'll create a special credential
that knows how to build itself from the instance profile.

Readme blurb about --aws-instance-profile.
Credentials from instance metadata.
Replace Credentials obj with boto's Provider.

Credentials from IAM roles change frequently, so the credentials abstraction
isnt' sufficient. The Boto Provider does what we want, so we'll use it
instead.
Instance metadata unit tests

Patch the get_instance_metadata and see if our Instance Profile provider can
find credentials.

Special case support for boto < 2.9
Support blackbox testing of IAM instance profiles, sort of

"Sort of" refers to the fact that internal contracts in Boto are
monkeypatched in order to fake having an instance profile set-up,
using real, live STS-generated credentials to fill in the blanks.