Allow 'login' to take optional email/password arguments.

This way, you don't have to use _login from outside to get the
User object while providing user/password on the fly.

Also, removed dependency in the interactive read_password method
from the Utils module.