Minor refactoring of mopac.py

Changing some if/else blocks to reduce nesting.
If we check the error condition (which will immediately return False) first,
then the rest doesn't need to be nested in an else block, and it's easier to
read from start to end and understand the flow control.
Minor refactoring of gaussian.py

Changing some if/else blocks to reduce nesting.
This is very much like the commit I just made in mopac.py
I wonder if some of this code duplication can be reduced...
Added @gmagoon's comments to the Gaussian pm3 keywords list.

In doing so I noticed that one of the sets of keywords was wrong 
(it was a duplicate of the line above it).
Added 'pm7' option to input file parsing for Mopac.

Also added some more exception handling for undefined methods.
1,3-Hexadiene input file now saves QMfiles in the output directory.

This makes it slower to run, because it won't re-use old files if you
delete the output folder between runs, but that makes it a better test,
and this is one of our Makefile test targets (`make eg2`).
`make eg2` will delete the output directory before running, so we now wipe
the slate clean of old QMfiles.