COMMON: Introduce BackOffInvoker, reduce logging of GroupDrainer/Balancer/Recycler messages
This class allows to call a particular function in an exponential backoff fashion. Currently we don't sleep in this class directly, but is easy to implement. By default the behavior at the end of integer range is to wrap around and restart again, though there is a template option to not wrap around and continue at full integer range forever. Tests are added to demonstrate the behavior.
Fixes: EOS-5578 Signed-off-by: Abhishek Lekshmanan abhishek.lekshmanan@cern.ch