First stab at a do_help function (no completion yet)
First stab at help completion
Restrcuture do_help and associated functions

- Make do_help recursive and more closely match similar functions
- Implement 'help_' methods to be help sources (as well as docstrings)
- Make help's help a help_help help method
- Update example for testing
Overhaul do_help function

- Split do_help to make get_help recursive function
- Tidy up the recursion and make it more efficient
- Handle arguments for help_ functions
- No need for try/except reading __doc__
- shellac-example help_ methods take args, offers all paths through recursion
More documentation test items.
Simplify do_help.
Simplify traverse_help.
Refactor get_help.

- Don't squash AttributeError exceptions from help_ methods.
- Return the top-level docstring for the Shellac class.
- Move help_help into the docstring of do_help
- Allow lower-level help_ methods and do_ docstrings to be empty which reverts
  to higher-level results
- Allow a help_ method without a do_ method.
Hide utility functions.
Use a more functional style. Tidy up re pylint.

- Create a decorator which turns a simple completer function into one which
  uses readline's simplistic "state" protocol. This allow the function to
  return an iterable, which is more efficient.
- Use list comprehensions instead of for loops where possible.
- Tidy up spaces and function names.
Set prompt to name of class by default
Use sys.stdout.write instead of print_function (sys will be needed elsewhere)
Remove reliance on cmd module

- Remove cmd import; don't override cmd.Cmd in Shellac
- Extend __init__ to set instance variables
- Add cmdloop and associated pre/post methods
- Support raw_input() or input() for python 2 or 3
Tab-complete help_ methods as well as do_ methods.
USe next() for python 3 compatability
Merge from master