Refactor decorators

This is an effort to remove non-presentational logic from our decorators, they were becoming grab-bags of random functionality.

Any feedback on how I've re-jigged how related content generation with ``RelatedContent`` and ``CategoryContentHierarchy`` would be appreciated.
I'm not convinced we should be decorating objects here. Shouldn't this object just build the hierarchy and then trust the collaborator to decorate as required?