Reworked controllers to allow DI

Switched to using the '@' syntax for the controllers, which *should* (in
principle) give us the ability to inject the Ecology.  We'll see if it
works...

The main upshot of the changes is that the '@' syntax requires that the
controllers be *classes*, whereas with that they are *objects*.  This
causes a few tweaks, but not too many.