Two phase

Adjusts our solver to solve for two phase problems

Makes the StandardModel make W the objective if there are artificial variables, and move Z to a constraint (with a Z column added as well).

Adds catches for Infeasible and Unbounded