clear solution info after failed solve

If a solve is unsuccessful, it's not clear what  ``getValue`` and ``getObjectiveValue`` give you: it could be information for the failed solve (e.g. an unbounded ray), or something residual from a previous solve (e.g. an optimal solution, but maybe for a modified problem). I don't think that solution information should persist past a single ``solve`` call; if we can provide information, great, but if not, we shouldn't be providing potentially erroneous information, especially if there's no easy way for the user to know what, exactly, we're giving them.