Use an interface to define the structure of the LdapUser object

By using an interface it is now possible to write custom User implementations (specifiable via a config parameter) that e.g. only rely on authentication done via LDAP. This allows an overridden LdapUserprovider to make use of a custom user manager (e.g. FOSUserBundle).

This PR is completely BC with older versions of this bundle by using your LdapUser implementation as a config default. If you find this PR useful, I could write a cookbook article explaining the specific usage. ;-)