Fix encoding of method syms owned by impl classes.

Previously, I thought that signatures of methods
in impl classes were globally unique, because their
first parameter is of the type of the corresponding
interface.

But if the trait has a self type, the type of this
parameter is the self type. Given that two traits
can have the same self type, they can have methods
with the same signature.

So now the encoding of a method sym owned by an
impl class is prefixed by the full name of its
owning impl class.
Compute 'fullClasspath in packageJS' separately.
A much faster `sbt run`, with lazy loading.

Since Rhino is very slow at digesting the entire
output of packageJS, we help it by hijacking .js
files emitted by Scala.js in order to load them
lazily.

This is done by replacing ScalaJS.c,
ScalaJS.modules, et al. by host objects. Upon
first access to one of their field, they derive
the path to the script that defines that field,
inject that script into the interpreter, and
then continue.