Normalize arguments across commands.

Use hypen-case to fit in with most other programs.
exiting with 0 status code is implied, removing explicit exit(0)
install/uninstall shared utils. npm as subprocess

npm takes over global error handling, leads to confusing error messages.
converted to child process. this simplifies changing the cwd too.
extracted log/error commands to utils.
Factor out npm install wrapper to resimplfy install process.
Correct kill Client signature.
Do not error if cannot kill client.
Reenable printf style error logging.
Upgrade async
unify ninja ls driver path with other commands.