targeted require.cache invalidation

Rather than invalidating our entire require cache (which caused memory consumption issues), support targeted invalidation.  The risk here is that there are other places we’d like to be reloading, and are leaking data between tests because we don’t.