Make the preoptimizer work directly on jars.

This is the first and most important step to #392.
It introduces the notion of a Scala.js classpath, which
consists of the core JS lib, the core info files, and the
Scala.js class files, all as virtual files.
It also adds utilities to read such a classpath from
on-disk directories and jar files. For the content of jars,
the files are unzipped as in-memory virtual files.

This brings the time to decide whether preoptimizeJS has
something to do from ~1.5 s to virtual immediacy on Windows.

To follow: make packageJS and run/test tasks support this
virtual classpath as well.