Raise error if LdapConnector.search() has no search_base

The search_base for the search() method can be set either when the
LdapConnector is first created, or passed in as an argument of search().
Either way we need to make sure that the search_base is specified in one
of these ways.
Add ssl_error() helper function

The exceptions raised by python3-ldap for very similar errors can be
different depending on if SSL or STARTTLS is being used. The ssl_error()
helper can help to coerce these varied exception messages into something
more consistent.
Add more robust LDAP SSL/TLS support

Provide users will the ability to configure various SSL options to allow
things like private CA certificates, ignore invalid certificates, or
provide alternatives hostnames for certificates with mismatching CN
entries.
Restructure the requirements files

Create requirements files for each test environments and point tox to
those files. This will help to keep package dependencies consistent
whether packages are installed manually using pip or within tox.
initial .travis.yml
include 3.4
lots of sudos
drop apparmor changes
correct pytest's name
Place certs in TRAVIS_BUILD_DIR
final touches
add more python environments