#151 split down: Fix rotation and persistence issues and allow harvester to resume after dead time

This contains only:

1. Fix rotation and persistence issues so majority of cases are detected correctly
2. Detect rotations while service is not running
3. Allow harvester to resume after dead time is reached
4. Implement the customisable dead time and don't impose any limitations on it, with default dead time a constant (as well as network timeout)

If still too much or you're already working on your own, just shout.

It would be great to get #164 merged too as that is a really big issue. It will conflict with this but easily fixed (if you do #164 first I will recreate this PR so it doesn't conflict.)