Add an 'aws configure list' command

This will show you where all the config values are coming from.
As part of this change, I also updated the commands.py module
to support subcommands.  This makes it easy to create a top
level command that supports subcommands in a declarative manner.
You can now run:

* `aws configure`
* `aws configure list`

As an example, you'll see output like this:

```
        Name                    Value             Type    Location
        ----                    -----             ----    --------
     profile                <not set>             None    None
  access_key     ****************ABCD      config_file    ~/.aws/config
  secret_key     ****************ABCD      config_file    ~/.aws/config
      region                us-west-2      config_file    ~/.aws/config
```