SI-4270 Rename implicits to avoid name clashes.

This will fail implicit search in the next commit.
SI-4270 Disqualify in scope implicits that are shadowed.

If an expression wouldn't type check explicitly, it shouldn't be
allowed implicitly.

Employs typedIdent, which already does this sort of thing rather well,
instead of continuing to reimplement it in Implicits.

Remove check for non-implicit synonym, which is subsumed by typing an Ident.

Workaround Scaladoc oddity, by using an attributed select when the context
is deficient.
fixes a checkinit problem
Clarifying deprecation messages for numeric conversions in Predef
Clarifying deprecation for implicit and explicit usage of the x2y's in Predef
A tribute to https://github.com/scala/scala/pull/414
Don't crash if cpsParam is not on the classpath.

When checking if a piece of code needs the continuations plugin, the cpsParam classes may not be on the class path. Assume it does not need it in that case.
Don't use the BrowsingLoader for Java sources. 

When the presentation compiler needs a SourceLoader, instead of immediately adding the file 
to the compilation round it uses a fast parser to create symbols for all top-level class definitions. 
The fast parser assumes Scala sources, which is not always the case.
Don't require symbols to be loaded in the parser.

The parser special-cases primitive types. For comparing the name, it relied on having the symbols 
for primitive types already loaded, which is not always the case. The presentation compiler 
may parse sources for, say, scala.Int, and therefore the symbol for Int may not be yet available.
Remove NPE when `compileLate` sees sources during initialization.

When a symbol needed in Definitions is loaded, it may be that the corresponding source is newer than
the classfile. That will send it to `compileLate`, but no phase is yet set. We simply add it to the 
compilation pipeline and continue gracefully.
Merge pull request #709 from scalamacros/topic/suppresswarnings

A tribute to https://github.com/scala/scala/pull/414
rework Future.dispatchFuture a bit to fix bugs / optimize

This fixes a bug where _taskStack could batch a task
into the wrong executor, as previously commented in the
code.

It now uses the _taskStack machinery for the Future.apply
dispatch in addition to callback dispatch, so we can batch
Future(body) as well.

Less significantly, it micro-optimizes by combining some
different closures and Runnable into a Task object, so
there aren't as many objects created when storing and
dispatching a callback. So it saves a bit of memory
and runtime perhaps.
Refactoring and temporary commit before finishing the fix.
Merge pull request #706 from scalamacros/topic/fixcheckinit

fixes a checkinit problem
Merge branch 'master' into sbt-reflecton-fix
SI-4270 Refactor for efficiency and clarity.

Avoids allocation of the hashset used by shadowing checks when
searching in the implicit scope, and replaces three checks for
`if (isLocal)` with a sprinkling of polymorphism.
Scaladoc class diagrams part 1

This commit contains model changes required for adding class diagrams
to scaladoc. It also contains an improved implicit shadowing
computation, which hides the shadowed implicitly inherited members
from the main view and gives instructions on how to access them.

This is joint work with Damien Obrist (@damienobrist) on supporting
diagram generation in scaladoc, as part of Damien's semester project
in the LAMP laborarory at EPFL.

The full history is located at:
https://github.com/damienobrist/scala/tree/feature/diagrams-dev

Commit summary:

 - diagrams model
   - diagram settings (Settings.scala, ScalaDoc.scala)
   - diagram model object (Entity.scala, Diagram.scala)
   - model: tracking direct superclasses and subclasses,
     implicit conversions from and to (ModelFactory.scala)
   - diagram object computation (DiagramFactory.scala, DocFactory.scala)
   - capacity to filter diagrams (CommentFactory.scala,
     DiagramDirectiveParser.scala)
   - diagram statistics object (DiagramStats.scala)
   - delayed link evaluation (Body.scala, Comment.scala)
   - tests

 - improved implicits shadowing information
   - model shadowing computation (ModelFactoryImplicitSupport.scala,
     Entity.scala)
   - html generation for shadowing information (Template.scala)
   - tests

Also fixes an issue reported by @dragos, where single-line comment
expansion would lead to the comment disappearing.

Review by @kzys, @pedrofurla.
Scaladoc class diagrams part 2

This commit contains the svg diagram generation using the graphviz
package, the template changes, the css styling and javascript code
that enables displaying and interacting with the diagrams.

The full history is located at:
https://github.com/damienobrist/scala/tree/feature/diagrams-dev

The diagrams are included as svg markup inside the html code. This
enables interacting with the image beyond what would be possible
with a static image (highlighting, scaling, tooltips, links to
nodes, etc).

The svg generation has four main phases: model => dot,
dot => svg (using the graphviz package), svg postprocessing,
inclusion in the html page.

This commit also fixes SI-5212 - links to individual pages
automatically load the left navigation panel of the website.

Commit summary:

 - diagram generation
   - model => dot (DotDiagramGenerator.scala, DiagramGenerator.scala)
   - dot => svg (DotRunner.scala)
   - svg post-processing (DotDiagramGenerator.scala)
   - svg inclusion in the html (Template.scala)

 - diagram interaction
   - css, js and image files

Review by @heathermiller, @kzys.
Documented SyncVar

Since we used it in the DocRunner and noticed it could have better
documentation.

Review by @heathermiller.
Adding backticks to code in deprecation messages in Predef