* move reseed_ctr and related member functions to Accumulator
* create a std::shared_ptr<Accumulator> to Fortuna's internal
Accumulator object and feed that into SeedFileManager instead of a
reference, which used to get copied to a new object in SeedFileManager
* make Accumulator non-copyable, since it's only to be created once.
instead, a shared_ptr is used to facilitate multiple-access
* handle concurrency in Accumulator as the reseed_ctr-related functions
can now be accessed from both Fortuna and SeedFileManager, declare mtx
as mutable (since it's also used in a const function)
* use std::scoped_lock in 'initialize_prng()' to safely lock both mutexes
a couple of fixes/necessary additions were made along the way, namely:
* add a default constructor for DoTask
* rework of the mutex/lock_guard/unique_lock logic in generator/fortuna
* add .fortuna.seed to the list of the ignored (.gitignore)
* add helper function to util for convertin bytes to blocks (16b==block)
* add a wrapper for around the SeedFileManager instance and a way to see
if it's dead or alive (so that it can be restarted if needed)
* the timeout for saving of the seed file has been decreased to a more
reasonable value than 10 minutes (I wouldn't want to lose potentially
up to 10 minutes worth of entropy)