dbGet AMICommandFailure when Database entry not found

Change manager.py to handle a deferred function for the dbGet
method when a "Resopnse: Error" is returned by AMI.  This
returns a None value on the dbGet callback.

This fixes an issue I had where an "Response: Error" to getDb
would raise an error.AMICommandFailure(message) exception when
the errorUnlessResponse method was called.

Also add a call deregisterEvent("DBGetResponse", extractValue) prior
to the dbGet callbacks.
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.
manager login: support for challenge response

Whitespace fixing, following highlight from pabelanger.
manager login: support for challenge response

Yet another whitespace fix, following highlight from pabelanger.
Merge pull request #17 from measterisk/master

Exception AMICommandFailure with starpy dbGet when Database entry not found
Merge pull request #30 from exvito/cram-login

manager login: support for challenge response