Introduce Solver type

Simplifies naming external solvers for internal purposes; probably not
as useful for clients.