Add Consumer object, and store it in the database

There's more data that may need to be stored for consumers, so it's better to
simply store the object.
Rework how consumers are stored

Also, add more data
Escape the redirection URLs