Allow page parts to use customised presenters

A page part will look for a named presenter and named data.
If found it will use the presenter to present the data.

Collection_presenter is a new presenter which will present any
collection as an unordered list.

This has passed the refinerycms testing, but I haven't written tests for the new behaviour yet.
I put the comments as I needed them to understand how the code works.
Yes,  I have only just grokked attr_reader vs instance variables and will look at doing that.
Apologies for inconsistent indentation - bits of code have moved around while I worked things out, and I don't always Format before I save.