xdg-activation: provide api to manipulate seat and surface fields
These token fields are not private, however they cannot be safely manipulated by compositors without also changing the associated (private) listeners in the token object. As a result, they are effectively read-only. However a compositor may wish to change these fields, especially for tokens created by the compositor without a client, for internal application launchers.
This adds the necessary api for a compositor to manipulate the seat and surface fields of a token.