Only re-read package contents when it has been modified

This saves something around 0.5 ms
Actually exit with an error when tests fail

Also changes "grunt test" to also run jshint
Fix lint error
This error complains about the method now, not the file

Still kind of fragile.  Should probably use some shared enum-ish thing.

This fixes failing tests.
Allow Impromptu to be installed globally. Migrates use-impromptu into this repository.
Allow modules to register their own subcommands.

If a module exposes a script "impromptu-subcommand", it can be run by calling "impromptu subcommand".

To override Impromptu's location, set the "IMPROMPTU_DIR" environment variable (instead of both "IMPROMPTU_DIR" and "IMPROMPTU_BIN"). "IMPROMPTU_BIN" and the new "IMPROMPTU_INTERNAL_BIN" are automatically generated from the "IMPROMPTU_DIR" environment variable and cannot be overridden.
Improve global impromptu fallback prompt.
Remove "impromptu-" prefix from bin scripts that are not subcommands.
Update tagline.
Allow the fallback prompt to accept a message.
Add a method for logging errors.
Rename '.compiled' directory to 'tmp'.
Update prompt tests to use new error message.
Remove unnecessary modules from prompt tests.
Convert tests to JavaScript.