ipc: Refactor client device to share more code
I didn't completely remove the ipc_client_device and ipc_client_hmd
structs if in the future we want them to have different behaviour.
Part-of: <https://gitlab.freedesktop.org/monado/monado/-/merge_requests/2466>
authored by