RFC: Try to avoid try

Wherever possible, replace try/catch blocks with method_exists or other logic. I think it's still necessary for hot starts, getting Farkas' proofs/infeasibility rays, and getting solution information.
I removed the fallback SOS implementation which means GLPK won't support SOS anymore. I should probably keep the second one though and put it under CPLEX/Gurobi.