AssetCache and code cleanup

Implements the AssetCache, which stores all loaded asset objects in a
centralized table (UUID->Asset) to permit them to be updated by the
updater thread.

This commit also adds the Runtime mixin, which designates an
implementing object as being able to produce a Proc that can be
dispatched within the Thread Pool to manage an ongoing background
process ("runtime").

Various portions of the code base have been cleaned up as well.