Add support for Controller types [SERINA-3]

This allows you to have admin/private/public sections of the site with
their own special controller behaviours