Introduce the UserId and ContextId newtypes

This is a first stepping stone in avoiding bugs by having `UserId` and
`ContextId` being proper types, and not synonyms.

We also refactor things to have `AuthenticatedUser` carry the `UserId`.
5 jobs for adinapoli/issue-276 in 66 minutes and 56 seconds (queued for 3 seconds)
latest
Status Job ID Name Coverage
  Stack
passed #10202
stack

00:01:13

 
  Cabal
passed #10203
cabal

00:28:36

 
  Bench
passed #10204
bench

00:12:58

 
  Test
passed #10206
test

00:24:08

failed #10205
test

00:14:53