seat: Create inert objects for missing capabilities
We should throw a protocol error if the relevant capability has never existed when get_(pointer|keyboard|touch) is called. Otherwise, it should succeed, even if the capability is not currently present.
This follows the spec, and avoids possible races with the client when capabilities are lost.