Custom ObjectInputStream so we can try the threadlocal class loader

Thread Local class loader is used by SBT to avoid polluting system class loader when running different tasks.

This allows deserialisation of classes from subprojects during something like Play's test/run modes.

For more details, see http://stackoverflow.com/questions/12496939/sbt-play2-multi-project-setup-does-not-include-dependant-projects-in-classpath-i