Provide better error on non-convergence of solve

If the SNES reason is unknown, it's probable that the inner solve failed
to converge.  So pull out that reason and add it to the message.
Merge pull request #192 from firedrakeproject/fix/better_convergence_error

Fewer "unknown reason" convergence messages.
Merge branch 'master' of https://github.com/firedrakeproject/firedrake into intervalmesh