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

cc @garnaat