Work around for side effects in setup.py script

Disables setup_requires and related magic for setup.py commands
clean, egg_info and sdist and the options --version and --help.

See also https://github.com/pyca/cryptography/issues/1253
Make sys.argv an argument of keywords_with_side_effects()
Change nested dictionary literal to match house style
PEP-8 fixes pointed out by Travis CI
Replace commands that depend on setup_requires with no-op that raises error
Bug fix for implementation of dummy commands

Pointed out by Jenkins:
https://jenkins.cryptography.io/job/cryptography-pr-experimental/2163/
Bullet proof (?) detection of arguments that don't need setup_requires
Simplify dummy commands (fix inheritance, remove finalize_options())
Fix for keywords_with_side_effects() (compatibility with pip metadata discovery)

Fixes a bug in 9e34c14b344f49d0721edc79d14ea5fc9c067d07 as described in
https://github.com/pyca/cryptography/pull/1257#issuecomment-48855243
Fix PEP-8 violations
Merge pull request #1366 from reaperhulk/rebase-setup-fix

Rebased work around for side effects in setup.py script