We were using stretchr/testify and test-go/testify inconsitently and
sometimes mixed in the same tests. This can cause very strange issue,
e.g when using things like mock.MatchedBy().
This moves all our code to stretchr/testify, which seems to be far
more active and maintained then test-go/testify.
This PR adds the keycloak package, which contains the following:
* More genericised functions for the invitations backend.
* User query functions.
* PII query functions.
As keycloak already supports everything needed for the required
invitation flow, it's ideal to use as the first backend to create users
and to send them invitation mails.
This PR implements that as the first and (for now) only backend.