Add a bootstrap script to run on prepublish (really local install)

* Tries to install the grunt-cli global if you don't have it
* Runs `grunt`

See #6
Don't prompt for Grunt install on Travis CI
Actually bail if you tell us not to install grunt-cli
Merge pull request #21 from Impromptu/better-install-script

Add a bootstrap script to run on prepublish (really local install)
Load the version from package.json and expose it on the Impromptu global
Expose the version on the command line using --version or -v
Semantic version unit test
Merge pull request #22 from Impromptu/expose-version

Expose version
Update module methods to require an object.

Removes the option to just provide a function to a module's register
method, and makes the `options` argument mandatory. Instead, the
function passed as `options.update`.
Add an abstract class for cacheable methods.
Document the abstract Cacheable class.
Expose and add details to cache errors.
Make the cache's unset method pass a boolean.
Improve cache.set's success logic.
Add unit test for low-level db cache methods.
Remove the cache's key method.

Instead of keys that can be changed within the class, we're going to
rely on names instead. Names can be changed using subclasses, which
will hopefully make cache behavior a bit clearer.
Rename cache classes.

Rename the base class from `Cacheable` to `Cache`.
Rename the global cache class from `Cache` to `Cache.Global`.
Move Cache API tests to a shared file.

Reduces code repetition for cache tests.
Add test utility methods.

Abstracts Travis CI checks and the test database overrides into their
own respective methods.
Automatically configure test environment when test utilities are required.