Rework s3 command tests

This reworks the s3 integration tests that run the
s3 command.  It makes two major changes.

1) Tests are more self contained.  There's no more implicit state
   from helper functions you have to track down.  Each test shows
   what objects it creates
2) Verification is done at the botocore level rather than at the
   s3 cli level.  This way we're using an alternate means to validate
   the tests.

The overall goal is to make it easier to add these types of tests so
we can have a high coverage for these "acceptance" tests.
Python 3 fixes, decode to utf-8
Add test for image/png content type

cc @toastdriven.
Merge branch 's3-test-cleanup-r1' into develop

* s3-test-cleanup-r1:
  Add test for image/png content type
  Python 3 fixes, decode to utf-8
  Rework s3 command tests