Add mechanism for removing home page list items after item destruction

We have to explicitly mark which things might be put in a home page list, and we use a method similar to adding the list api to the containers.  For now it only adds the destroy hook, but it'd be a good place to hang any other methods we might need in the future (like finding what things have an item in a list).
Fix failing cukes

Make world office index more robust when no offices exist and make sure steps create offices that are on the home page.
Extract shared controller behaviour for managing home page lists

Use a similar technique to that for the shared model behaviour, but we need to be able to provide overrides.  Have used define_method rather than simple def for the methods as without it the local variables used to customize the method calls in the controller methods are not available.