Commit before renaming Solver to Model.
Big messy commit …

… including documentation skeletons, tests and coverage, pretty advanced glpk_interface, rudimentary gurobi and cplex alternatives and a lot more