Inheritable property collections for layouts and labelling

Initial draft for discussion
Could this be implemented instead by

  * Using an invalid `QVariant` for this (there's still a `NULL` `QVariant` left for "real" purposes)
  * Unsetting a property by deleting it from the `QgsPropertyCollection`