Expose twisted.cred for change hook auth.

Twisted provides a rich interface for defining authentication. Use it
for defining change hook authorization, rather than just one specific
bit of it.
Also skip adding hook if it IUsernamePassword isn't supported.
Link to twisted.cred documentation.
Merge 'web-auth':  Expose twisted.cred for change hook auth.

Twisted provides a rich interface for defining authentication. Use it
for defining change hook authorization, rather than just one specific
bit of it.