Improve BiCGSTAB robustness: fix a divide by zero and allow to restart with a new initial residual reference.
On windows CE, assert.h defines NDEBUG if DEBUG is not defined
It's better to check that eigen_assert does raise an assert rather than testing the definition of NDEBUG