Introduced the switch meta-decorator for conditional method decoration
Added priority counter to ClassDecorator to resolve key clashes

The priority counter ensures that a method decorated in a subclass takes
priority over a method (of the same name) decorated in a superclass. For
instance, this is important if the type of a sheet is changed in a
subclass.
The types and label decorators of Model now respect priority values
Removed set_sheet_types and set_projection_types methods from Model

These have been deprecated in favour of the switch meta-decorator.