Allow LDAP authentication through the UI

This uses the same form elements as those used for internal authentication. When both local and ldap are enabled, ldap will be attempted first. If that fails, local will be attempted.