Final set of core changes to the optimiser sub-system.  Everything is in place now, but it needs some testing, particularly GLPK and Gurobi.