vtest: add experimental support for multiple clients
The first six commits updates vtest_renderer to support multiple clients/contexts. The rest commit updates vtest_server to make use of the feature and support multiple clients.
This moves vtest_server a bit closer to the kernel. More works are needed, including protocol changes. To quote the last commit,
Note that multi-client should be enabled only when the clients know
and trust each other. This is because resources are global among
the clients. Two clients trying to create two resources with the
same id will result in an id conflict for example.
Proper multi-client support requires changes to the protocol. The
main change will be for the server to generate globally unique
resource ids and enforce access controls.