Added atom types for nitrogen.
Adding attributes to the class Atom describing the number of lone
electron pairs along with function to manipulate and request their
values.
Removed a code section responsible for saturating the input adjacency
lists with hydrogen atoms from the function fromAdjacencyList requiring
that the input adjacency list have include already all hydrogen atoms.
Added a new code section calculating and storing the number of lone
electron pairs and electric charges for each atom which is possible only
if the adjacency list contains all hydrogen atoms.
Added function searching for resonance isomers by radical-lone electron
pair resonance and extend the electronic charge calculation for the
special case of hydrogen.
Extended the symmetry number calculation to account for nitrogen atoms.
Change removeH from True to False to enforce explicit hydrogens in
databases.
I have added the atomic mass of nitrogen to the function loadGeometry
Added the function saveChemkinFileEdge.

This function writes for debugging the molecules in the edge into a
ChemkinFile similar to the function saveChemkinFile for the core
molecules but with additional information.
Extension for nitrogen molecule.py and molecule.pxd

- adding function isNitrogen() to confirm that an atom is a nitrogen
atom
- updated and renamed the functions identifying lone pair - radical
electron shift resonance isomers
- added functions identifying resonance isomers with nitrogen atoms
having two double bonds (N4dd) and nitrogen atoms having one triple and
one single bond (N4ts)
- removed isRadical() in generateResonanceIsomers() because it is again
used inside getAdjacentResonanceIsomers() and
getLonePairRadicalIsomers() and is not required for
getN4dd_N4tsResonanceIsomers()
Added functions to increment and decrement the number of lone electron
pairs

- also added the atom type N2d
Extending function isMoleculeForbidden()

Because of the many new molecular structures possible by accounting for
lone electron pairs, such as ions and new forms of radicals, we have to
forbid, at least at the moment, certain structures until we have more
thermodynamic and kinetics information for them in our libraries.

- Until we have more thermodynamic data of charged molecules we will
forbid them
- We also forbid positively charged oxygen atoms
- We forbid at least at the moment oxygen atoms with bond order larger
than two and radical oxygen with a bond order of two
Introduction of a new reaction family involving lone electron pairs
forming single bonds

Example reaction: Acatat ion (CH3CO2-) reacting with water (H2O)

In both of the two contributing resonance structures of the Acetat ion
one of the two oxygen atoms is connected to the carbon atom by a single
bond and bears three lone electron pairs while the other oxygen atom is
connected by a double bond and bears two lone electron pairs. The oxygen
atom with three lone electron pairs can abstract a proton (H+) from a
water molecule where one of the three lone electron pairs provides both
electrons for the new single bond formed to the new hydrogen atom,
resulting in an acetic acid (CH3COOH) and a hydroxide (OH-) molecule.
Simple extension to draw.py to draw the lone electron pairs as angular
lines around atom symbols

- Needs further improvement to account for the direction of bonds to
adjacent atoms and the special drawing of small molecules
Adding GAIN_PAIR and LOSE_PAIR actions to ReactionRecipe

These action will be first used in the lone_electron_pair_bond reaction
family

- GAIN_PAIR increases the number of lone electron pairs on a specific
atom
- LOSE_PAIR decreases the number of lone electron pairs on a specific
atom
Adding lone electron pairs to group.py

- adding attributes for lone electron pairs
- adding functions __gainPair() and __losePair() and handling of the new
reaction recipe actions GAIN_PAIR and LOSE_PAIR
Improving performance of forbidding molecular ions

- temporarily, until we have more thermo and kinetics data on ions
Improving performance in atom symmetry number calculation

- treating special case of nitrogen in NO2 groups
Merge remote-tracking branch 'GreenGroup/master'
Merge remote-tracking branch 'GreenGroup/master'

Conflicts:
	rmgpy/molecule/atomtype.py
Introducing optional parameter in adjacency lists for lone electron
pairs

The following adjacency list example describes NO2 with the radical 
electron on the nitrogen atom with the following parameters where
numberLoneElectronPairs is new and optional:

atomIndex atomType numberRadicalElectrons numberLoneElectronPairs
bonds{}
1 N 1 0 {2,D} {3,S}
2 O 0 2 {1,D}
3 O 0 3 {1,S}