Generate Cusp solver tailored to solver parameters

Since we have the parameters dict we can just generate a solver for
the selected preconditioner and krylov method type instead of a
generic solver that determines the types at runtime from the parameter
values.

Also add gmres_restart to default params.
Raise RuntimeError if solver/preconditioner type is not supported by Cusp
Merge pull request #117 from OP2/generate-cuda-solver

Generate Cusp solver tailored to solver parameters



Since we have the parameters dict we can just generate a solver for
the selected preconditioner and krylov method type instead of a
generic solver that determines the types at runtime from the parameter
values.

Also add gmres_restart and monitor_convergence to default params.