cumulative gene deletions and gene substring names

Solve the problem of shorter gene games substituting in for longer ones
when the name is a substring of the longer one without using costly
regular expressions.

Cumulative gene deletions now work correctly and are the default
behavior.
automatically detect glpk path from glpsol

Similar to the approach used by pyglpk.

Makes installation of cglpk easier when installed in non-standard
locations.
model.optimize selects a qp enabled solver

When no solver is specified and a quadratic component is given, cobrapy
will now correctly use a solver which supports quadaratic programming,
as determined by the presence of a set_quadratic_objective function.

This fixes #109.
Fix pFBA for already irreversible model

Fixes #115

 - Model.remove_reactions now correctly handles an empty list
 - When already_reversible is True, do not attempt to run
   revert_to_reversible
Fix Solution __repr__

 - Updating f after creation will now reflect in repr
 - Display non-optimal status in repr
Docmentation Update: Examples as Notebooks

All of the example scripts were rewritten as IPython notebooks. These
notebooks are then used to autogenerate example scripts as well as
Markdown for sphinx documentation.

In addition, the following changes were made:
 - qp example no longer specifies a solver
 - an extra MILP example added (NP complete from XKCD)
 - One single notebook for introduction describes core objects
 - All autogenerated example scripts in examples/ directory

The following minor bugfixes were made:
 - settings load mathjax over https
 - add ipynb_checkpoints to gitignore
 - latex preamble now loads amsmath and amssymb
 - remove extraneous docs such as cobra.version