Improve some simulator consistency checks + increase
allowed no. of steps in dt~0 limit to 10^5

In long simulations with significant amount of BD steps we may
get longer chains of short updates which the code then will mark
as dt~0 steps and fail very soon without reason.

On the other hand 10^5 BD steps are not expensive, so we can
keep on checking longer before we bail out a running simulation.
Examaple script for simple reaction in 2D
Include utils.cpp into StructureFunctions.hpp to fix some
sporadic compilation errors
Minor cleanup in egfrd.py
Replace an assert by raise exception in shells.py
Fix a typo