Cache the source module for a given require path rather than re-locating
it each time -- this change doesn't yet help performance because the
asset locations themselves are re-generated each time.
Create a separate method for determining whether a plug-in can handle a
given asset container so that we can start caching the result of
handling an asset container until the plug-in that we should use changes
at some point.
Provide asset-location plug-ins a means of caching asset locations so
they don't need to be generated fresh each time.