client: enhance delegate_dispatch macro and document the delegate traits.
client: enhance delegate_dispatch macro and document the delegate traits.

This changes the macro to obtain to the delegate using a closure. This allows the user to choose between referencing a field or function to get the delegate.

Smithay/wayland-rs,vberger/wayland-client-rs,vberger/wayland-rs,vberger/wayland-rs,Smithay/wayland-rs,vberger/wayland-client-rs,vberger/wayland-client-rs