Allow kwargs to be passed through to uplaoder

Rather than keep concurrent_create_archive_from_file
and ConcurrentUploader in sync with their argument,
**kwargs is now forwarded to ConcurrentUploader so that
whatever args ConcurrentUploader may grow,
concurrent_create_archive_from_file will support those args.
Add more diagnostics to debug logs

Make it clear:

* What exceptions we've hit
* The exception message
* How many times we've retried this chunk.
Let total attempts by 1 + num_retries

More intuitive that num_retries != num_attempts but instead
num_attempts = 1 + num_retries.  Added a test to verify this.
Merge branch 'glacier-kwargs' into develop

Closes #1420
Merge branch 'glacier-exceptions' into develop

Closes #1422

* glacier-exceptions:
  Let total attempts by 1 + num_retries
  Add more diagnostics to debug logs
Add metadata_service_num_attempts config option

When retrieving credentials from the metadata service,
it is possible to set a config option to specify the number
of seconds before timing out the request, but no option
exists that specifies the number of attempts to make to
the metadata service.

I also made two changes to the metadata retrieval process:

* If we're on the last iteration of our retry loop we
don't sleep.  This allows us to maintain our 1 second max delay
by default if no metadata credentials are available.

* Remove urllib2 error catching. This is raised when a timeout
occurs and this is something we definitely want to retry.

Added a unittest for the config option and also verified
on an EC2 instance with an IAM role specified that the failure
conditions are retried appropriately when
metadata_service_num_attempts is set.
Merge branch 'metadata-num-retries' into develop

Closes #1436.

* metadata-num-retries:
  Add metadata_service_num_attempts config option