fixes the manifest.erasure deprecation
backports https://github.com/scala/scala/pull/2821
absorbs scala.tools.nsc.typechecker.Implicits

I really don't like the swathes of copy/paste that I have to make, but
that's the price to pay for ultimate control.

Good thing that I'll only have to maintain this every point release of
2.10.x (2.11.0-M5 already implements fundep materialization and 2.11.0-M7
will implement fundep views).
backports https://github.com/scala/scala/pull/3030