begin separating glpk for cpython and jython
glpk solver uses comprehensions in format solution
split cplex and gurobi java solvers off
glpk solver uses izip in create_problem

speeds up problem_creation by 9% while using less memory
gurobi_solver now has change_variable_bounds

gurobipy does not allow getting variables by index, but does by name
(for some strange reason). Therefore, this now uses the index as the
name (ugh) so we can get this functionality. Otherwise, we would need to
index the specific variable out of the entire list of lp.getVars(),
which takes nearly 500us every time.
add change_variable_bounds to cplex
small bugfix for glpk and glpk_java
single deletion fba fast method

Single reaction deletions with this function are 20x faster

This speedup comes from using the solver specific functions
add change_variable_objective to cpython solvers
implement fva using optimized solver functions

speedup of 3.5x
small cleanup for new fva and single rxn deletion
gene deletion computed in separate function

The logic used to determine which reactions are inactivated by a gene
deletion has been moved from delete_model_genes into a standalone
function find_gene_knockout_reactions
single_gene_deletion_fba with new solver speedup

Using lower level solver control enalbles 2.4x speedup with iJO1366
model single gene deletions.
identify possible numeric fva isssue with new speedup
fast fva no longer assumes objectives sum to 1
glpk sets constraints from reaction._metabolites

instead of from metabolite._reaction
solver unit tests for low level control
SMatrix works with both lil and dok
revert arraybasedmodel default to lil
implement LinkedArray, add for model.reactions

LinkedArray is an ndarray which updates model.reactions (or metabolites)
appropriately if it is changed. For example, model.lower_bounds[4] = 10
will cause model.reactions[10].lower_bound = 10 to be automatically
executed as well.