Provide an AuthProvider skeleton in libphutil

Summary: Ref T1536. One of the major issues with authentication today is the tight coupling between provider APIs (e.g., how you figure out a user's account ID) and Phabricator-specific configuration (like whether a specific provider is enabled or not). To remedy this, I'm splitting auth providers apart into libphutil -- they have the provider-specific code which knows the OAuth/LDAP/OpenID protocols. The configuration and policy code will layer on top of them intead of being part-and-parcel.

Test Plan: Static only; this code is not reachable.

Reviewers: btrahan, chad, rezanachmad

Reviewed By: chad

CC: aran

Maniphest Tasks: T1536

Differential Revision: https://secure.phabricator.com/D6155
Add diagnostics to LDAPAdapter

Summary: Ref T1536. Provides diagnostics support for LDAP.

Test Plan: Ran `bin/auth ldap`, see next diff.

Reviewers: mbishopim3, chad

Reviewed By: chad

CC: aran

Maniphest Tasks: T1536

Differential Revision: https://secure.phabricator.com/D6217