Clean up login operations:

The diff is a bit confusing, but here's what I did:

* Create attributes: email, password.
* Method "username" provides an alias to "email".
* BUILDARGS sets the "email" if "username" is provided.
  (BUILDARGS supports both hash and hashref constructs)

Since the user can have either "email" or "username" as the actual
username, the code had to check this in various places. Instead,
I've consolidated those into a single attribute: "email". BUILDARGS
sets "email" if "username" is provided. "username" as a method
exists for users who seek "username" instead of "email".

* Method "_login" creates a Todoist::API::User object from a provided
  email/password.
* Method "login" calls "_login" with the attributes "email" and
  "password".
* Method "return_user" removed, since its core functionality is now
  in "_login".

If you create a new object and want to use the given username and
password you provided on instantiation, you can use "login" method:

    my $user = Todoist::API->new(
        email => '...', password => '...'
    )->login;

If you prefer to send a username and password on the fly, you can
use the "_login" method:

    my $user = Todoist::API->new->_login( $email, $password );

There's also a bunch of tests added that check everything is
consistent.

Notes:
* No longer reads password from command line. This is something the
  CLI should do itself.
* login_google() probably doesn't work anyway.