First pass at cleaning up code.

1. Use with for file IO
2. Get rid of default [] args in methods.
3. Made PyCharm code inspector mostly happy.
NFC: Updated function comments.
More clean up based on review:

1. Replaced sys.exit with SystemExit()
2. Remove all the sys.exit calls from methods.
3. Refactored new_change a bit - could still be better.
Supress the 'review posted' messages when -n option used.
Remove conditional use of Popen in run_G.

The code I took from perforce used Popen when available, but as
written it had the potential to block.  Since I'm pressed for time
and experience, I'd rather not mess with that issue at all, so just
use popen2 which is fine for this purpose.
Combine the create_review and update_review functions.
Fix bug where jobs were not being put in new reviews.

Adding Jobs to review was only happening in edit, not create.
A refactor of create to push the functionality down to edit
fixed the problem and removed duplicate code.
For list args, ensure if we have input it's a list.
Merging back the changes made in the review-cleanup branch.