fixed classpath routing for lenskit train test evaluations using disc cached recommender components see bug #518

This code is a partial fix for bug #518.

It doesn't check if external recommenders get their classloader configured correctly.

Unfortunately, I have not had time to write an intergeneration test for this issue, however, I have been able to test that this resolves the issues I was having.

I needed to make the CustomClassLoaderObjectInputStream a public class (before it was default) to accomplish this. Int he future we should use the similar class provided by commons-IO, but I leave that for a different pull request.