Make solver interface more unified

Fixes #99

 - Model.optimize no longer gives parameter values by default. The
   defaults are left to the solvers.
 - Each solver has a _SUPPORTS_MILP attribute which can be used to
   determine if it solves mixed integer programs.
 - get_solver_name will raise a SolverNotFound exception when it can not
   find a suitable solver.
 - Each solver has a solver_name attribute which is used instead of
   attempting to remove the word "solver".
 - 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
setup.py always rebuilds cglpk.c

 - uses force=True in cythonize.
 - cython is required to use the develop option
 - misc changes to setup.py (passes pep8 now)
Remove deprecated solver functions