If Invalid k(E) then repeat calculateMicrocanonicalRates() with more grains.

This carries on indefinitely doubling the number of grains each time.
Eventually I suppose something will crash if you have too many grains,
but that is no worse than the current situation when it stops immediately.

I think this closes #77 - finally! (for now)