Unify boolean arg behavior

Regardless of whether or not an option is required:

* If you explicitly set the value, `--enable-foo`, we
  add a True value to the params dict.
* If the explicitly set the negative value, `--no-enable-foo`,
  we add a False value to the params dict.
* If you omit the value, we don't add anything to the params dict.

Fixes #161
Return cli_type_name for boolean values
Add test verifying when no bool option exists
Add parameter name for bad json values

Fixes #185
Merge branch 'json-error-message' into develop

* json-error-message:
  Add parameter name for bad json values
Merge branch 'fix-161' into develop

* fix-161:
  Add test verifying when no bool option exists
  Return cli_type_name for boolean values
  Unify boolean arg behavior