Added EditFieldInterface for items that support a form edit field.

This interface will be used for any items that need to render a form field to edit their values via a web form.

Methods included…
* renderEditField()
* getName()
* isHiddenField()
* getHiddenFieldValue()
Abstrct class used to extend the PostMeta & WPOption classes from.
Type correction in DocBlock
Added abstract PostMeta class

This will be extended by particular PostMeta child classes for particular field types.
Moved PostMeta into own namespace & added class DocBlock
Updated class to use better named method parameter names
Added TextInputPostMeta for post meta that uses text box for editing
Added methods to PostMeta to allow it to be used for inclusion in a metabox.
Updated PostMeta as realised previous design was not going to work.
Added support ofr rendering the post meta edit fields, including the post meta values
Added PostIdLinkedInterface & SaveDataInterface

PostIdLinkedInterface is to specify that an object can be linked with a post (using the setPostId() method).
This is used by Metabox to set the postID just before rendering the edit field, so that the post meta value can be retrieved & displayed

SaveDataInterface is to indicate that the object has a save() method for saving any updated value.
Added returning of $this on addEditField() method.
Added more metabox tests
Added checkDashboardLocationIsOK()

Checks whether there is any content that’s not suitable for the metabox to be added to the dashboard.
* Unsuitable items are PostIdLinkedInterface objects
Adding Metabox to dashboard with PostIdLinked content displays a warning.

Added call to checkDashboardLocationIsOK() when attempting to add the metabox on the dashboard.