Fix testing framework errors.
Fail correctly.

Thor must be instructed to exit with a non-zero when an error occurs.
Also, print failure messages to stdout.  If an exception is not
descended from the Thor::Error class, Thor prints the stacktrace.  We
don't want a stacktrace in this instance, so we lie and use one of
Thor's error classes in the call to fail().
Add some tests.