Unify boolean params

Required and optional boolean params are treated the same.
For every option 'foo', you get:

* --foo, which, if set, will send the param as a True value.
* --no-foo, which, if set, will send the param as a False value.
* <don't specify>, which will not send the param to the service.

There's still some docs work as currently you get the same docs
for both positive and negative params.
Fix streaming output arg customization

I noticed that there actually are unit tests for this, but
we weren't checking the RC of the run command, only that the request
params looked how we wanted them to.  As a result, I've updated the
base test class to check for expected RCs from the commands that are
run.  This caused the tests to fail and should ensure that if we
break the streaming output arg customization, we'll get a test failure.
Update integration test to check for Amazon EC2

This is just due to the way the docs were being rendered
so I picked a more reliable doc string change.

All the integration tests are passing.
Resolving merge conflict.
Resolving merge conflict.