First stab at ldap manager using shellac
Restructured and split into separate classes

- New LDAPSession class, containing LDAP methods
- LDAPman class renamed myShellac - Shellac-only methods
- All config and options stuff moved to 'top-level'
- Tidied up get_conf()
- myShellac supports cmdloop() and onecmd() calls (depending on cmd-line args)
- Temporarily commented-out completer decorators (bduncan to resolve)
Context manager for LDAPSession, incremental fixes to ldap_search. LDAPShell defined in main() (in the scope of LDAPSession object).
options and config don't need to be passed around
Config file fixes

- Double % in config file needed for literal %
- Remove unnecessary spaces/quoting in config file
- get_conf args should be strings
ldap_search improvements

- Use synchronous search with timeout
- synchronous search returns results differently
- Set scope and timeout args (with defaults)
- Attempt to return something valid for tab-completion
- Remove exception handling (used for debugging only)
Add user cmd and fix ldap_user_search.
Add timeout handling to ldap_search
Provide Completion error-handling and completion list parsing

- CompletionError exception class
- If a completion function returns this, print it's message and redraw prompt
- Example stub to print a message on long completion lists
- Empty self.results if message printed to prevent a 2nd completion attempt