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