Fix LDAP test failures.

Previously, only the first LDIF file was loaded and that
caused the test to fail, as the required user wasn't created
yet (user details were in other LDIF files).
LdapIntegrationTest.java: General cleanup.
LdapTest.java: General cleanup.

Useful comments have been left in place.
LdapImpl.java: Add new method for user creation.

The new method will have to be refactored to increase
code reusability.
Add integration test for new LdapImpl method.
LdapImpl.java: Refactor createUserFromLdap().

The method doing the actual user query and creation
has been extended with a boolean parameter controlling the
password check code path. This allows the username-only
method to delegate to the original method.
LdapImpl.java: General code and comment cleanup.
Fix tests: use new password check flag.
Update LDAP password providers with new flag.
LdapImpl.java: Add user creation method.

The new method signature enforces password
verification and is a backwards-compatible
API addition.
Revert "Update LDAP password providers with new flag."

This reverts commit 9d99526d0f322bb7380d24c9b62cef74538c1fd7.
Add user creation method to the Blitz API.

This exposes the method to other language bindings.
This commit also cleans up ILdap.java.
Add initial implementation of "omero ldap create".
User creation method in rw transaction.
Fix bugs found by flake8.
Remove "idempotent" from method declaration.
Add check for existing user.

A ValidationException will be thrown when the
user already exists in the DB.
Add exception handling to ldap.py.
LdapImpl.java: Use type-safe empty lists.
Handle client-server API mismatch.

In the case where the CLI client connects to an
older server API (e.g. 5.0.2 to 5.0.0), the method will be
missing from the server. We catch the exception thrown by Ice
and inform the user.