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.
Rename test-util to environment.
Lock context in the cache API unit tests.
Add a local cache class.
Merge pull request #23 from Impromptu/register-api

Update cache and register APIs