Re-architect delegate block production loop

Delegate loop now uses a timer to fire once every block interval, rather than polling every second. In addition, the loop only runs when at least one local delegate has block production enabled.