move account_for_branching method to cbh2 Reaction class

the method was tailored for that particular class of cbh reactions,
and could not be generalized.
exclude terminal bonds in cbh-2 product population method
fill in the populate_reactants() method of CBH3Reaction
add some tests for CBH3Reaction
added chb1-3 tests for PropylPent4Enoate
remove alternative implementations of populate * methods in CBH0Reaction
add global methods: get_all_bonds, exclude_hydrogen_bonds

makes the populate_reactants/products methods of the CBHReaction
classes much more readable.
factor out the electron info writing in CBHSpeciesGenerator
add some TODO's and potential pitfalls in documentation.
unify naming conventions of methods in CBH module
rename read_input(...) to read_input_user_defined_reaction(...)

same for parse_input(...) method
allow optional constructor parameter 'spc' in Abstract_CBH_Reaction classes

this allows us to set the Species AFTER we constructed the CBHReaction class
redesign of error_cancelling.py module

use of classes to structure the code more:

1) Parser classes (superclass: AbstractErrorCancellingReactionParser)
that read in multiple types of input files for the
error cancelling estimator.

Current implementations:
a) UserDefinedReactionParser: the user provides an error cancelling
reaction and the code will use that reaction to reduce the error
on the enthalpy of the 'unknown' species.
b) UserDefinedSpeciesReactionParser: the implementation generates
a reaction according to the Connectivity-based Hierarchy of
the Raghavachari group.

2) ErrorCalculator: this class carries out the calculations for
thermo and so forth.