Fix bug in PropertySet whereby non-default values are not return when calling resolve().
Extended PropertySetExpression to support expressions that contain >1 instance of a property reference.
Change Label to use PropertySetExpressions rather than Java Message Format style patterns.

We now support the following kinds of definition for labels:
{ text: "${title}. ${forename} ${surname}" }

The following kinds of definition for labels have been removed:
{ for: ["title", "forename", "surname"], pattern: "{0}. {1} {2}" }
Continue to bring Label under test.
Make Label a stencil.
Update todo list.