Use an interface for circuit breakers, allow different types of breakers

Also adds rudimentary redistribution to circuit breakers