Fix the eval component cache

The eval component cache wasn't instantiating components when it wasn't in heavy use, totally messing up the build vs. eval phase distinctions.

@kluver, this may also have been causing the caching problems experienced by the MovieLens team.
I want to check if I understand the impact of this correctly, as this seems to be the important change:

There appear to be two code paths for object sharing through this class. The first uses the register node functions to explicitly ask for cacheing. This does exactly what it says on the tin. (where does this code path get used?)

The second code path is done by asking it to process a graph (or set of nodes) in the past if those nodes were not registered previously you did nothing. (just returned the nodes unmodified). This code change allows these nodes to go through CacheEntries attempted instantiation (if necissary) (where were these nodes otherwise being instantiated if they wern't being instantiated here?)
By doing this you 1) have to make a throwaway cache entry which feels a little weird because it isn't actually entered into the cache from what I can tell
and 2) get to try to load the object from disk in case the _only_ sharing happens between executions.