inline fun <reified M : Any, T> observer(noinline observerProperty: (M) -> Observer<T>): ObserverDelegate<M, T>