Add test on toleranceMoveToCore and toleranceToInterruptSimulation Values

Raise an error if toleranceMoveToCore > toleranceToInterruptSimulation.
Closes #299
Add a check on toleranceMoveToCore existence if user forgets to provide one in the input file.

Set it as None by default then check that it's not None.
Before this change the error message was unhelpful: "model requires at least 1 argument (2 given)."
Closes #302
Edits to RMG input file parsing. Greater use of InputError class.

To help users with invalid input files (and, down the line, to help a UI) it's better
to raise InputError every time there's a mistake with the user's input file, rather 
than sometimes an AssertError (should only be used for bugs in the code, not mistakes in the 
input), and sometimes a TypeError (definitely not helpful for a novice user to interpret).

I also replaced some tabs with spaces, re-ordered the parameters in saveInputFile to match
the order in which they're read.
Add MolePro files as energyLogs in cantherm

Enable a bare-bones commit that lets users use MolePro Files (only
CCSD(T)-f12-vtz and dtz) as inputs for cantherm energies.
Merge pull request #303 from nyee/cantherm

Add MolePro files as energyLogs in cantherm
Condense code for adding a wildcard set of unpairedElectrons, lonePairs, or charges.
Raise an error if there is a duplicate group in a kinetics family.
make orbitals global in adjlist and correct some of them.

The maximum number of valence orbitals is defined per period of the
periodic table. Each orbital can contain a maximum of 2 electrons.
We assume that period 2 and 3 have a maximum of 8 valence electrons so
this leads to a maximum of 4 valence orbitals.
use number of valence electrons rather than orbitals in H count (adjlist)

this makes the "formula" that determines the number of hydrogens to be
added much more transparent.

Also, account for atom partial charge when determining this.
create class PeriodicSystem and create class attributes

this makes it more reusable, I think.
test checking whether charge is fully checked during molecule isomorphism

parametrized test via nose-parametrized.
tries all possible combinations (repetitions allowed) of charges for
carbon.
added a permutation through some elements in isomorphismTest.py

elements: C, O, N, S
account for number of lone pairs in isomorphismTest

I forgot to modify the number of lone pairs according to the element.
refactored the hydrogen saturator method in adjlist in its own class

created a class method, rather than an instance method because it
doesn't use any important attributes.
corrected typo in isomorphismTest.py
refactored the consistency checks in adjlist in ConsistencyChecker class

currently 2 checks exists:
1) valency of atom
2) multiplicity must be odd

if not correct, an appropriate error is raised.
correct typo in adjlist.py: check_multiplicity

if multiplicity is even, then we have a problem.
charge is calculated, NOT considering maximum valence of period

the charge of atom can be calculated by considering its
- theoretical valency (eg. carbon = 4, oxygen = 6)
- the number of unpaired electrons
- the number of lone electron pairs
- the bond order (connectivity with other atoms)

the maximum valency of 2 or 8 does not come into this equation.
correct check of multiplicity for doublets

also, added some more info on what we exactly check
log to info when checking consistency of multiplicity for nRad > 2