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.
Shorter methods than this are preferable. An easy way to shorten this one would be to split various little bits of logic out into separate methods. For instance `section_name`. Once code is in smaller chunks it's also easier to reason about it so it doesn't need as much explanation. With the section name if all you have to look at in a method is one line of code `part.title.gsub(/\s+/,'')` it's pretty clear that strips spaces so it then doesn't need an explanatory comment.