Cleanup local name generator.
Remove outdated comment
Fix comments and coding style.
Remove useless logging and enable more assertions.
Factor out genThis().
Clean up genStat and exprToStat.

In particular, the logic of the Assign cases was moved to
genExpr(), and merged in one case.
Decompose genApply() in several smaller methods.
Change the order of the params of genIs/AsInstanceOf.
Use pre-encoded and pre-allocated names in the compiler.

scalac has this efficient notion of TermNames and TypeNames,
typically pre-encoded and pre-allocated for those recognized
by the compiler, and we were stupidly converting them to
decoded strings all the time for comparison.
Remove redundant case in genExpr().
Remove the 2 last patterns with guards of genExpr().
Merge pull request #655 from sjrd/cleanups

Cleanups
Fix #656: Add Scala 2.11.1 to tests
Refactor TypeKinds, and translate Unit as NoType.

This is a long overdue refactoring and cleanup of TypeKinds.
They are now really the minimal bridge between scalac Types
and IR Types, in the sense that they adopt the structure of
IR types, but still keep a reference to the scalac Symbols.

At the same time, we have fundamentally changed the meaning
of scala.Unit when translating to the IR. It used to be
translated as UndefType, hence with an actual value which
was `undefined`. Now, it is translated as NoType, which
means that there is *no* value of type Unit at runtime. It
effectively means *void*. In the IR, trees of type NoType
can never appear in expression position.
Merge pull request #658 from sjrd/unit-is-void

Refactor TypeKinds, and translate Unit as NoType.
Merge pull request #657 from gzm0/add-scala-2.11.1

Fix #656: Add Scala 2.11.1 to tests
Fix #610: Restructure classpaths for clean linking API

The new API allows for classpaths to be partially linked
(n.b. packageExternalDeps, this commit fixes #609).
Merge pull request #654 from gzm0/linking-flow

Linking flow