Add a new operation for SMTP login.

This pull-request adds a new interface to SMTP login.

`[[smtpSession loginOperation] start:^(NSError * error) {}];` does only login if needed.

I think it doesn't need to be a public header.