cglpk solver failing raises informative exception

The error code and error message are included in the RuntimeError,
instead of simply a failed assertion.
Fixed bug in modify.revert_to_reversible when checking for a valid Solution