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
doc updates

https mathjax

merge multiple intro notebooks into one for intro

replace building model example with notebook

add ipynb_checkpoints to gitignore

add xkcd np complete example for milps

add io docs

autogenerate example scripts

code in notebooks less than 80 chars wide

qp demo no longer specifies solver