cleanup exception messages
use more appropriate near-zero test
update user-facing solver api
remove the basic flag from Symbol.

The algorithm guarantees that all variables in the objective
function are parametric. Testing that a symbol is basic is
therefore not needed.
wip update for solver impl
add add method to Row type
make Constraint default constructable
add internal solver error class
wip commit