Early getting of the searches from the registry

To avoid useless activation of the context managers both in
Connector.ldap_login_query() and Connector.user_groups()
Wrap both LDAP operations in the same try: block

to correctly check exception from the first search too.
Be nicer to the directory server

by setting a sizelimit on authentication searches.
Skip server searches on empty query filter.

The API has been preserved by refactoring the caching
and connection searching into a new _LDAPQuery.execute_cache
method that gets called in turn by _LDAPQuery.execute
Allow skipping/postponing the dn search

by refactoring the _LDAPQuery class:

  - slightly refactor _LDAPQuery.execute by splitting it into
    a new method _LDAPQuery.execute_cache, which does the real work
    of searching and caching, and a replacement _LDAPQuery.execute
    which will skip the call to execute_cache when filter_tmpl
    is empty.

  - directly call _LDAPQuery.execute_cache after entering the
    user-bind self.manager.connection() context manager
Escape login identifier before searching the entry.

This will avoid trivial DOS and ldap.FILTER_ERROR exceptions on
attempted logins by users sporting "funny" login names, like 'user*name'
or 'user(middle)name'.

This is a forward port of lmctv/pyramid_ldap@f3057446181106
to silence merge conflicts.
Create context-named connections

This way, it becomes possible to add distinct ldap connectors
to the same pyramid app, and reference them by adding a context=...
discriminator to the api calls:

    ldap_setup()
    ldap_set_login_query()
    ldap_set_groups_query()
    get_ldap_connector()

and to the Connector's __init__ method.

Feature comes complete with unit tests...
Change authenticated_user's representation

to help groupfinder discriminate between configured backend contexts
Adapt tests to the new representation.
Factor-out a get_connector_name

to simplify downstream integration.
Add documentation for get_ldap_connector_name.
Merge remote-tracking branch 'upstream/master'

into multiple_named_configurations
Docstring changes

Shorten one line and correct one typo.
Add myself to CONTRIBUTORS
Set default values for login and password
Merge branch 'master' of github.com:Pylons/pyramid_ldap into multiple_named_configurations

Conflicts:
	pyramid_ldap/__init__.py
Merge branch 'upstream_merges'