Fixed updateConfiguations call when pruning prep network

Discussed in #58. @jwallen made the change in 4ef7e32,
just missed this case.
Fix `getValue` call for input file writer

This fixes the website input file writer. There is
still more to add e.g. QM in the input file writer,
however this will prevent it from breaking (hopefully).
Merge pull request #210 from pierrelb/pDepPruning

Fixed updateConfiguations call when pruning prep network
Merge pull request #211 from pierrelb/webInpFileWriter

Fixes website input file writer
Change the way cyclic and polycyclic corrections are handled AND don't include gauche correcitons.

Use overall ring correction instead of most destabilizing one for enthalpy.  (We were using
cyclopentane corrections for cyclopentene.)  Now it is corrected.

Don't include gauche corrections if the molecule is cyclic.  (Still need to include them
for parts of the molecule that aren't in the rings.. but we'll figure that out later.
Update the debugging lines for thermogroups.  They were outdated.
Merge pull request #212 from connie/thermoGroups

Fixing thermo group corrections for cyclics
Change the way in which libraryOrder is handled for kinetics database.

Prior to this, libraryOrder listed all the libraries used in order of priority,
but did not indicate whether they are Seed mechs or reaction libraries.

Now, indicate this by setting libraryOrder as a list of tuples in the format
('library_label', LibraryType), where LibraryType is set to either 'Reaction Library'
or 'Seed'.  That way we can avoid trying to double generating reactions for the 'Seed'
library type (since they have already been added to the core).  This also gives us
more flexibility for treating the seeds and reaction libraries differently.
Changed rmg.reactionGenerationOptions attribute to more relevant speciesConstraints name

For matching with the generateSpeciesConstraints name in the input file.  Makes it
less confusing for the programmer.
Add species constraints checks to input species, seed, and reaction libraries.

Explicitly allow species by using the `allowed` flag in generatedSpeciesConstraints, which
can be set to a list with 'input species','reaction libraries', or 'seed mechanisms'
(or any combination of these categories).  The species from the specified categories can bypass and
ignore species constraints given in the input file. They are also added to a list
of explicitlyAllowedMolecules.  However, all family forbidden and globally forbidden
groups are still forbidden.

Additionally, now prints warnings for globally forbidden but allowed molecules.  And
gives exceptions if they were not allowed to begin with.
Added documentation regarding global and family-specific forbidden groups.
Documentation for species constraints.
Tweak to species constraint allowed molecule list.

I'm not 100% sure we've generated resonance isomers at this point,
so this change may not be enough, but I feel we should allow all resonance
forms of an allowed species.
Reducing code duplication by passing in failsSpeciesConstraints.

Now passes species constraints function through to family reaction
generation routines instead of running checks in multiple locations.
Changing the criteria for `maximumRadicalElectrons`.

Prior to this, single atoms were allowed to bypass this criteria,
but this is neither well documented or intuitive.  We should get rid of it,
especially since we can now individually allow seed mech and input species
to bypass constraints.
Merge pull request #208 from connie/master

Modifying species constraints checks
Remove external references to Conformer._E0

In rmgpy/statmech/conformer.pyx, _E0 is the private attribute backing
the public E0 property (to support an Energy cast on setting).
Respect that privacy and use the public interface.
Merge pull request #214 from wking/no-_E0

Remove external references to Conformer._E0

In rmgpy/statmech/conformer.pyx, _E0 is the private attribute backing the
public E0 property (to support an Energy cast on setting). Respect that
privacy and use the public interface.
Add more features to checkWellFormed in family.py

Add bit of code to identify products better. I check the name of groups I
think are products vs the products listed in forwardTemplate.products.

One error we check for is if a label in rules.py is misnamed, i.e. if any
part of the label is not a group in group.py. There a decent amount of
these errors due to the recent Java/Py database merge. To make my life
database debugging life easier, I added a new feature which tells me if
there is a group which matches the misnamed label.

For example, let's say we have a rule label, A;B. Somebody changed the
name of A to C in groups.py, but left it unchanged in rules.py. The new
feature would suggest C as the correct name for A, by comparing adj lists
of the rule and those in groups.py

Unfortunately, there is a bug I can't figure out. If somebody changed A to
C
AND B to D, it suggest C for A and C for B. The manual work around
is to visually verify which one adjList C matches, make the fix, and run
checkWellFormed again. It will then suggest D for B. I feel like this
isn't worth fixing because it will be unable to suggest groups with the
upgrade to universal database (once all adjlists are removed from
rules.py)
Reworked the checkWellFormed in KineticsFamily for testing database.

The identifying of node names and labels based on the actual nodes 
is different.
First, we check if it's right, i.e. if the groups named in 
the label 'group1;group2;group3' are indeed the same groups in 
the groups.py file.

Then, if not, we try to figure out what it should be called.
For each group in the actual node, we look through the groups.py
file to see if we can find one, and if so suggest that name.

I think this logic flow works better than what was there before,
but I did change/break the way it reports errors. Previously it would
collect them in a list of tuples, then return a tuple of lists, and
whatever function had called it (eg. in EvaluateKinetics.py in the RMG-database
project) would have to deduce what this meant and report the errors.
That means keeping the two files, in different projects, in sync
as the tuple/list syntax changes.  Rather than figure this out, I 
just report the errors as they are detected. If you prefer the other,
mute my logging lines, and compile a tuple as before.

Hope this helps.