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
cglpk solver failing raises informative exception

The error code and error message are included in the RuntimeError,
instead of simply a failed assertion.
Make solver interface more unified

 - Model.optimize no longer gives parameter values by default. The
   defaults are left to the solvers.
 - Each solver has a _SUPPORTS_MILP property which can be used to
   determine if it solves mixed integer programs.
 - Solver options are now more unified. All solvers now accept (in
   addition to their own additional ones)
   - time_limit
   - tolerance_feasibility
   - tolerance_markowitz
   - iteration_limit