Reordering of home page contacts is available

Via the UI (new tabbed version of organisation/contacts view), and this ripples down via the controller to the org and thus to the home page list.
Fill out steps for home page contact removal
Extract home page list methods on organisation into a rails-style "macro"

This means we just have has_home_page_list_of :contacts on organisation and this expands out into the full set of methods we need.  It's implemented similarly to rails in that we define all the methods on a module and include that, so they are available for overriding and calling via super.
Move listing of offices from world org controller to world office

It's really where it belongs.
Extend home page office ordering onto worldwide organisations
World org main offices need to be treated differently

They can go in the list, but when we ask for the offices in the list remove it from that list.  Also say it's on the home page if asked and it's not in the list ('cos it will be on the home page).  Tweak the admin UI to not allow ordering the main office, but do show it as being first.
Allow for home page addition / removal via the list of all offices
Make world office list look more like contacts list in admin