api, auth: rename User.Login to User.CheckPassword

This name makes more sense.
auth: added GetUserByEmail function
auth: validate email in GetUserByEmail function

Related to #150.
auth: remove User.Get method
auth: validate the password in the CheckPassword function

Related to #150.
api: fix auth package usage
auth: change CreateToken so it receives the password

It should not be possible to generate a new token from other packages
without the user password.

Related to #150.
auth: added specific error type for authentication failure

Related to #150.
auth: export User.CheckPassword method

change-password depends on it.
auth: improve error description when user is not found
api: refactor Login handler

Now the handler doesn't access the database directly anymore, all token
creation logic is in the auth database.

Related to #150.