Add ResourceView

This is a class-based view that tries to encapsulate all the
functionality we want from resources, to try and remove some duplicated
code.
Split apart factories

The factories for various model types should live along side the apps
that own the models rather than in unrelated apps.
Convert Organisation app to use ResourceView

I've left all the view tests in from when it used its own logic to
further prove the ResourceView provides the same functionality as the
code that it is replacing.