Split out object listing into separate object

Let's us vary the implementation from the filegenerator.
URLEncode keys

Botocore's xml parser does not handle control chars properly,
so we need to urlencode the keys in the response so that we're able
to handle them appropriately.

Fixes #675.
Add integ test for removing file with newlines
Fix comment in test
Merge branch 'encode-keys' into develop

* encode-keys:
  Fix comment in test
  Add integ test for removing file with newlines
  URLEncode keys
  Split out object listing into separate object