Make references to users be foreign key instead of string matches
We've previously done string matching on usernames which comes with all
sorts of problems :/
Instead, do a proper foreign key to the users model. Our authentication
system already (and for a long time) supports importing a user by email
address from upstream if the user doesn't exist, so instead update the
integration to do that when adding new users with permissions.
NOTE! Prior to deploying this migration all users referenced in the
permissions and ssh tables *must* exist in auth_users, otherwise the
migration will fail.