Refactor of CLI core.

Refactors core CLI code in order to make help a first-class module and
give more verbose error messages when the module or command is not found.

Example:
> sl help
<help about all modules>
> sl help cci
<help about all cci commands>
> sl help cci list
<help about the cci list command>
> sl invalid
<primary help block>

Invalid module: "invalid".
> sl cci invalid
<cci module help block>

Invalid command: "invalid".
Fixes bug on Python 3 because SystemExit does not have a message attribute.
TRIVIAL: removes needless debugging in a test
Fixes Typo
Merge pull request #96 from sudorandom/core_refactor

Improved Help Command. Better Error Messages for invalid Modules/Commands