Added states and tests for "Drain Clogged" state. Substantial
refactoring of the states to pull more functionality in base class