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 know that there are actual and potential problems with this approach and appreciate help and comments in solving them.

For instance: page_parts vs page edit tabs
1. In the CMS there are content sections which the user can add, delete and reposition. They become a page_part in the database. Content added to the section will appear on the front end.
2. If you have page-images installed, when you edit a page you will see a tab called 'Images'. It looks like a content section, it acts like a content section in the CMS, but nothing happens on the front end. No page_part is found in the data_base and the images you select do not show up. (although they are available for someone to display)

My pull request attempts to address point 2 by linking a page_part and a page attribute/instance variable which share a name, and for which an appropriately named content presenter can be found.

I originally required that the shared name be registered by a plugin - assuming that plugins are the most likely origin of any extra page parts and attributes.

If we consider the case of images there is an outstanding problem. Each page has an Images tab, but no pages have an images page part. If I add an images page part the CMS shows both the Images tab (ready to select images) and an images tab.