Annotates a groovy property or a class to support JavaFX properties.
 
 When annotating a property it indicates that the property should be a
 bound property according to  JavaFX beans, announcing to listeners
 that the value has changed. 
 
 When annotating a class it indicates that all groovy properties in that
 class should be bound as though each property had the annotation (even
 if it already has it explicitly).
 
 It is a compilation error to place this annotation on a field (that is
 not a property, i.e. has scope visibility modifiers).
 
 If a property with a user defined setter method is annotated the code
 block is wrapped with the needed code to fire off the event.