Check converged reason after iterative solve completes.
Add flag to demote error on non-convergence of the solver to warning

If the solver parameter 'error_on_nonconvergence' is True (the
default), non-convgence of the linear solver raises an exception.
If set to False, a user warning is printed instead.
Merge pull request #131 from OP2/check-reason

Check converged reason after iterative solve completes.

If the solve has not converged raise a RuntimeError unless the solver parameter
'error_on_nonconvergence' has been set to False, in which case only a warning
is printed.