Added the framework for water controllers.

Follows a similar abstract base and specific child classes pattern as
the moisture sensors.