Merging experimental (including speedup) and species back into master.

Merges the improvements in speed from the experimental branch with the species branch.  The major differences from the species branch are:

1) introduction of a Species object from which biological species (Genes, Metabolites, ...) are now derived - we're no longer just working with metabolites.

2) changes the unstable Reaction._gene attribute from a dict to a set in acknowledgement of the fact that a Gene may be present in two different Enzymes at different stoichiometries which makes the {gene: stoichiometry} representation inaccurate.

3) removes some junk