Handle property name collisions
Properties cannot have the same name as signals and methods, as they will break various language bindings.
Since listing this requirement only in the documentation has been insufficient, we should emit a warning, and hope that library developers will pay attention to it.