Added display_name to User model

This will be a random string defined by the user to show instead of the user or
id. Can be null.
Adding some constraints

If required information is missing a 400 (Bad Request) is returned.
FUCKUP
Better return codes documentation