HV-878 Integrating Optional and JavaFX types

My hope actually is that implementing one single unwrapper for `ObservableValue` makes things simpler rather than more difficult. Btw. you also don't need the special handling for `ReadOnlyBooleanWrapper` etc., ClassMate will resolve the type parameter for you. E.g. it will derive `Boolean` for the type parameter `<T>` from `ObservableValue` when you pass `ReadOnlyBooleanWrapper`.

> I'm trying to the limit the possible range of types supported by the annotation.

Why that? I'd try to make the unwrapper as generic as possible. `ObservableValue` provides everything we need to satisfy the unwrapping contract: we can obtain the value to be validated via `getValue()` and we can determine the declared (static) type to be used for validator resolution from the type parameter `T`.

E.g. it's perfectly fine to declare the following, so I don't see a reason why we should not support it:

    ObservableValue<String> stringProp = new SimpleStringProperty( "hello" );

> This can confuse the user and will make annotation processor checking more difficult

In which way? Probably users actually will use more specific types in their declarations than `ObservableValue` but I don't see a reason why it should not be supported.

> Any advantage is using ObservableValue as compared to ReadOnlyProperty?

It will allow you to write one single unwrapping routine for the entire hierarchy of property types in JavaFX, not only `ReadOnlyProperty`, but also `JavaBeanProperty`, `ObservableStringProperty` etc.