Match truncated InChI from MOPAC logfiles due to MOPAC2012 bug.

MOPAC2012 deletes 81st character from InChI string in input file, leading
to some mismatches.  Use only up to the first 80 characters to match to
the InChI (at least until they fix this bug.)

See https://github.com/GreenGroup/RMG-Py/issues/137 for more details.
Hopefully remove redundant spin states when generating reaction templates.

When you removed two radical electrons from an atom type in a functional group
that was {2S,2T} it would create an atom type that was {0,0}.
Hopefully this commit will make it only 0. 

Also, I think it removes a bug whereby previously if you removed 1 radical
electron from something that was 2S, it would become something with a 
single free radical, but a multiplicity of zero! (instead of two).

This should remove the {0,0} part of the RMG-database exporting issue
GreenGroup/RMG-database#18
https://github.com/GreenGroup/RMG-database/issues/18
Slight speed tweaks for applying actions to atoms.

To do with local scoping - avoid looking up action[0] and converting
it to an upper case string every time you want to compare it 
with something,  and avoid checking to see if self has 
an attribute called radicalElectrons every time you want 
to compare it with an integer.