Add customization to allow for "types" of top level args

The two included are:

* parsing the jmespath --query arg
* resolving the verify ssl argument (including env var lookup)

This is code that otherwise every plugin would have to call, so it
makes sense to do this as part of the parsing process.  This is just
like argparse's "type" arg, except plugins can more easily hook into
this.
Update s3 high level commands to honor --no-verify-ssl

Fixes #696.
Add #696 to changelog
Merge branch 's3-ssl-verify' into develop

* s3-ssl-verify:
  Add #696 to changelog
  Update s3 high level commands to honor --no-verify-ssl
  Add customization to allow for "types" of top level args
Don't compile jmespath expression in formatter

Not needed as of the globalargs customization.
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
Update changelog
Add space in dryrundocs

Fixes #695.
Disable newline integ test on windows

Not a valid test on windows.