Add configuration of LDAP

Add LDAP configuration to specify LDAP server,
search base and filter for query user.

Signed-off-by: Royce Lv <lvroyce@linux.vnet.ibm.com>
Split PAM and LDAP authentication

Split PAM authentication implementation and abstract a common class.

Signed-off-by: Royce Lv <lvroyce@linux.vnet.ibm.com>
Add LDAP authentication

Add LDAP authentication, also deals with invalid user,
LDAP search base configure error and other LDAP errors.

Signed-off-by: Royce Lv <lvroyce@linux.vnet.ibm.com>
Fix test cases for authentication

Authentication function moved to class,
so build a fake user class to cover test.

Signed-off-by: Royce Lv <lvroyce@linux.vnet.ibm.com>