Preliminary fixes and grooming.

* Drop duplicate `-bmX` flags.
* Fix bad initialization of http_ip and http_port.
* Add missing default DEV_NODES.
* Delete unused default NODES.
* Add module docstring and parser desription.
* Do not parrot commands to output.
* Align most names of parser arguments, dict keys and ctx attributes.
* Have parser check commands.
* Drop `status` command.
* Fix bad combination of `with` and `try`.
* Tidy imports.
Group switches by type.

* Derive key from argument automatically.
Remove execute flag from non-executable files.
Do not re-inject defaults. Align rest of settings.

* The Namespace object that the parser returns has all
  fields initialized to the defaults or the user-provided
  values. No need to re-check.
* Align all remaining arguments, keys and attributes.
Remove outdated Windows script.
Bootstrapping new Launcher Unit Test.
Pass ob_ctx.disable_sqlite_crypt to setup_db()
Align key case with argument case.
Various minor fixes.

* Fix typo in function name.
* Make the default for http_port be 0 for ease of use.
* Ensure the server ip really is public if STUN is disabled.
* The parser automatically informs the user if a bad command was issued.
* Some style fixes.
Merge pull request #794 from Renelvon/launcher_tidy

Fix and refactor launcher (part 1)