Mixed Integer Linear solver interface added
Refactored...

SolverFactory can now create Linear, Nonlinear, Quadratic, and MIL optimizers

The Solvers no longer require 'Algorithm' parameter in their constructors

Further decoupled the optimizers, especially the quadratic Gurobi optimizer