manager login: support for challenge response

AMIFactory changes:
- New attribute named plaintext_login.
- Defaults to True, keeping backwards compatibility.

AMIProtocol changes:
- New method loginChallengeResponse().
- Called instead of login() by connectionMade() if the factory's
  plaintext_login attribute is False.

Note: these changes follow existing code architecture and conventions, even though AMIFactory's login() docstring states the existing approach is messy. But that's to be eventually addressed under a different scope. :)

Thanks in advance for your review.
Why even offer up plaintext, digest support has been in asterisk for a long time.  I'd be cool moving away from it by default.