DOC: add faq and bugfixes

Add an FAQ notebook to answer common questions. It now answeres the
question of how to rename reactions/metabolites, which fixes #78.

The QP example now also has figures to better illustrate the problems.
cglpk: add function to write problem to LP file
quadratic_component is an optional keyeword arg

No longer pass quadratic_component=None to all solvers by default and
force them to implement code to ignore it if they do not support
quadratic programming. When specified, it is still passed on.
cglpk: bugfix to LP file writing with python 3
Add exact solving to cglpk

This is controlled by the exact=True parameter. However, this requires
an additional dependency on libgmp (which can also be statically
linked).
add bindings to QSopt_ex aka esolver

The solver uses cglpk to construct the problem and write out an LP, and
the command line interface to esolver is used to solve it. Esolver can
use rational math to solve an LP exactly.
test esolver on travis
Merge pull request #126 from aebrahim/exact

Add exact solving to cobrapy
cglpk.write_lp is now write and also does mps

The format is detected from the file extension.
Saving gene names in JSON files; specified default JSON dump params.

Specifically, allow_nan=False.
Merge pull request #127 from zakandrewking/master

Save genes in JSON and mat files, and options for JSON export.
Parse formula containing floating point values

A warning is still raised when floats are encountered, but this does not
prevent parsing of the composition.

This fixes #128
Support for the MOSEK solver

For now, this only will solve linear programs with Python 2. Support for
MILP, QP, and Python 3 should be added in a future commit.
Deletion worker detects errors

If the solver crashes or fails, even when in a separate thread, an
exception is raised instead of using "0" as the value
deletion of 0 flux reactions already known

If an optimal solution has 0 flux through the target deletions, then the
objective value will not change by constraining those reactions to 0.
Using set operations, cobra can avoid sending these cases to the lp
solver and use the known wild-type objective value.
Add ability to compile gene_reaction_rule

For most gene reaction rules, compiling the string allows a direct eval
using a substitution dict to desribe the activation state of the genes
allows for much faster computation than using regular expressions and
string manipulations to transform the expression to a satement without
substitutions.

This enables detecting and using gene_reaction_rules which can be
compiled. This is now done by default for double gene deletions.
deletion_worker read sol before reset

Some solvers (such as cplex) invalidate the solution when changing an
LP. Therefore, resetting the problem before getting the solution caused
failure. Now the solution is read before the problem is reset.