Updates to SS module

- Restructure code to avoid multiple copies of code snippets.
- Optionally return dict with details on solution and solver details.
- Allow for building preconditioner separately so that different
iterative methods can be applied.
- Calculates inf-norm of residual at output.
- Returns number of iterations performed.
- Allow for inputing initial guess vector.
- Calculate a lower bound on the condition number of a preconditioner.
- Residual norm is given when iterative method fails to converge.
- Removed bicg method since it is not compatible.
- General docstring edits.
- Add tests for bicgstab method.