decouple provider by setting up a UserInterface, UserFactoryInterface an...

...d EntityLibraryInterface

Just these three new interfaces and a simple modification in the provider in order to retrieve the User object through the UserFactory object. Then we have decoupled the provider from the Conrad specific objects that would be blocking the new implementation in another domains.

In another words the LDAPProvider does not depend on Conrad objects anymore.