Correct PEP8 drift

The PEP8 tool now prohibits block comments beginning with '##', which
I used in the copyright header.  This eliminates the new PEP8 complaint.
Add an @expose decorator

Certain ScriptAdaptor methods are exposed on the decorated function.
This exposure was hand-coded, making it a little hard to maintain.  This
adds an @expose decorator, for use only within cli_tools, along with an
associated metaclass, so that the exposed methods can just be decorated.
Add the ability to decorate classes

This adds the ability to decorate classes (issue #3).  In a decorated
class, the exposed methods (e.g., 'console()' et al.) are not added
to the class; rather, a 'cli_tools' attribute is set on the class.
(Functions also gain this attribute, which replaces the older
_script_adaptor internal attribute.)  For classes, the entrypoint thus
becomes "module.name:ClassName.cli_tools.console".  The class is
instantiated, with the constructor passed requested keyword arguments,
then the "run" method of the object is called with its requested
keyword arguments.

Note that the name of the "run" method is currently hard-coded, but
future work is anticipated which will enable the method name to be set
explicitly.

Closes issue #3.