Add typespecs to phoenix token functions (#4803)
Add typespecs to phoenix token functions (#4803)

Each `Phoenix.Token` function takes multiple arguments with ambiguous
types. Furthermore, the functions delegate to `Plug.Crypto` which also
lacks typespecs. This adds types and specs to make working with `Token`
clearer.

optikfluffel/phoenix,phoenixframework/phoenix,0x00evil/phoenix,rafbgarcia/phoenix,phoenixframework/phoenix,rafbgarcia/phoenix,optikfluffel/phoenix,rafbgarcia/phoenix,optikfluffel/phoenix,phoenixframework/phoenix,0x00evil/phoenix,0x00evil/phoenix