Merge branch 'release-1.2.1' into develop

* release-1.2.1:
  Bumping version to 1.2.1
list_files() should yield in alphabetical order

Fixes #440.

The issue was that we were not yielding files in the same order that
S3 was yielding files.  This occurred whenever a directory was
a prefix of a file, for example, S3 would list objects in this order:

    test-123.txt
    test/test-0.txt
    test123.txt

Whereas we were listing local directory contents depth first:

    test/test-0.txt
    test-123.txt
    test123.txt

Because the syncing algorithm relies on the fact that both local
and S3 ordering is the same, this would result in unnecessary
syncing of files.  Conceptually, we'd see an S3 -> local sync
do this:

    S3   :  5 1 2 3 4 6 7
    local:  1 2 3 4 5 6 7

So when we compare S3-5 to local-1, we decide to delete local-1,
then local-2, up to local-5.  However, when we get to S3-1 and
local-6, we decide we need to add local-1 to local-5.  The end
result is that we have a set of tasks to delete files, followed
by a set of tasks to readd the files back.

The fix here was to ensure that we are listing local files by
including an `os.path.sep` for any sub directory before sorting
the contents.  Then we just recurse whenever we hit a sub directory.
Add a test for listing local contents with unicode chars
Fixed a bug in text formatting when an empty list is encountered.
Merge branch 'fix-delete-sync' into develop

* fix-delete-sync:
  Add a test for listing local contents with unicode chars
  list_files() should yield in alphabetical order
Add unit/integ test for #442

This is a test for #442, verifying we get the proper output
whenever we have a paginated response combined with text output.
Merge branch 'test-issue-442' into develop

* test-issue-442:
  Add unit/integ test for #442
Add test for #446
Merge branch 'garnaat-fix-445' into develop

Closes #446

* garnaat-fix-445:
  Add test for #446
  Fixed a bug in text formatting when an empty list is encountered.
Add a CHANGELOG.rst

Back filled it with existing release notes for versions > 1.0.
Add links to release notes and CHANGELOG in README
Fix test failure by removing spec arg to Mock object
Merge branch 'add-changelog' into develop

* add-changelog:
  Add links to release notes and CHANGELOG in README
  Add a CHANGELOG.rst
Rename next release to 1.2.2
Bumping version to 1.2.2
Merge branch 'release-1.2.2'

* release-1.2.2:
  Bumping version to 1.2.2
  Rename next release to 1.2.2
  Fix test failure by removing spec arg to Mock object
  Add links to release notes and CHANGELOG in README
  Add a CHANGELOG.rst
  Add test for #446
  Add unit/integ test for #442
  Fixed a bug in text formatting when an empty list is encountered.
  Add a test for listing local contents with unicode chars
  list_files() should yield in alphabetical order