Cleanup error message when specifying invalid choice

This adds some basic formatting so choices are presented like:

operation-name1        | operation-name2
operation-name3        | operation-name4
longer-operation-name5 | operation-name6

I set the number of choices per line to be 2, which at 40 chars width
(which works for the majority of services) will still look ok
for people with 80 char width terminals.  Bumping up to 3 choices
per line looks good as well, except it requires 120 chars of space.

I've also added an auto suggest so that if you mistype a command we
try to offer suggestions to use, so for example you'll now get something
like:

Invalid choice: 'list-buckest', maybe you meant:

  * list-buckets

I'm using the built in get_close_matches which isn't based on the
minimal edit distance, but setting a threshold to 0.8 similarity
seemed to work well in practice, and we don't have to include our own
levenshtein distance function.
Merge branch 'suggest-command' of git://github.com/jamesls/aws-cli into jamesls-suggest-command