Move the 'ls' command into a separate Command object

This fixes issue #439.  The bigger change here is that
I'm starting to break up the commands to not go through
the same generic processing.  There are certainly commands
that have *some* similarity, but not all commands are the same.

Particularly commands like `ls`, `mb`, `rb` can be pulled out
into their own subclasses with their own logic.
Remove banners from s3 ls command
Remove mentions of ls in main subcommand
Add tests for new ListCommand

Verify we're only making the minimum required amount of calls.