Add module to detect param shapes
Move unpack_cli_arg to argprocess module

No functional changes.
Add builtin plugin loading module

The arg simplifier handler is a no op right now.
Initial commit of arg simplification

Not a very elegant implementation, but the tests are passing.
There's also a bunch of asserts in there so I can verify my
assumptions while I test this further.
Move file: arg processing before process-cli-arg event

This allows plugins to see the values from the values in the
files rather than having to process/ignore the file: arg
themselves.
Change file prefix from file: to file://

Exact same semantics as before except the prefix has to be file://.
This was done to prevent a conflict when using the shorthand notation
for complex param (we wouldn't be able to tell the difference between
the file: prefix and a key named 'file' or 'http' of 'https').

Docs updated as well.
Generate rst help in awscli process

This will allow plugins the chance to modify the docs before
generating the rst contents.
Add hook for supplementing example docs
Update unit tests with shorthand arg syntax tests
Add help text for shorthand param syntax

Requires f4877d9d6d5ab6e8059bd4c0cbecf0e0496affa6 from bcdoc
which emits an event when generating parameter syntax examples.
Add error messages on param processing errors
Merge branch 'develop' of github.com:aws/aws-cli into develop