Exact: pre-calculate stochiometric coefficients and calculcate possible leap times

Leap times are calculated in a primitive way, without taking variance limits or
optimizations into account.
Exact: limit jumping in stimulations to at most one period
Move random number generation inside StepGenerators

There should be no functional change, but instead of generating random
numbers in suitable quantity and passing them as parameters, the stepper
object can generate them on its own, making it easier to call.
Move the choice of leap generation into StepGenerator

This code was basically copy&pasted in three different places.
There was some variation, but hopefully not too important.
Implement basic leaping
Make leaping configurable
Move leap execution to the end of the leap

This makes leaps behave more like normal events, and avoids the problem that a
normal event followed by a leap would have both "things" happening at the same
time.

Also, it makes dependency recalculation work normally.
Improve debug messages
NextEventQueue: when adding dependents, ignore duplicates

NextReaction el.0 DrA→A+Dr had NextReaction el.0 A+Dr→DrA, NextReaction el.0 A+Dr→DrA,
because there was more than one common substrate when iterating over substrates.
It's easiest to just check for duplicates when adding to the list.
Improve debugging messages more
Check products and reactants separately when calculating leap times

In a reaction like A→A+B, where B is very abundant, the condition for
B might be satisfied with a huge leap. But if A is scarce, we would
end up with trying to execute a reaction with an extent bigger than
the count of A. We shouldn't do that.
NextEventQueue: fix sign in leap time calculation
NextEventQueue: fix calculation of stimulation leap times
StepGenerator: never ever return negative poisson variates
NextEventQueue: use expected change and variance for diffusion τ-leaping
ExactStochastic: properly report the number of injected particles
ExactStochastic: report leap numbers and such
Implement gathering of all events

Only ExactStochastic implements the new interface.

The results are not written anywhere yet.
ResultWriterHDF5: use chunking to write out events

It turns out, that when the data that is written out
is not a multiple of the chunk size, hdf5 ignores (?) the
selection, and index errors occur. To work around the problem,
events are gathered and written in multiples of the chunk size.
Currently, the last incomplete chunk is simply lost.
It is not certain, if the data that is written is correct.
Downgrade and tweak debug statements