In regards to the Auth Snaplet
The createUser function takes a username as Text, but the loginByUsername function takes a username as a ByteString.
I can understand why the Snaplet would use ByteString to store usernames in an encoding-independent way. However, it might be nice for all functions to take a username input as a ByteString.
Alternatively, forcing Text for usernames throughout might be a good idea.
Fix issue #67