Fix get_error_code_and_message to deal with new unified error format.
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.
Skip simple arg processing if it looks like JSON

Also log if we think it looks like JSON so debugging is easier.
I've updated the ec2 tests to test for these simplified args.
I think it would be a good idea to go through the tests once the
syntax is worked out and make sure all the examples seem reasonable.
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.