Carve up Types.scala

Step one of a plan to bring some order and thread
safety to this neck of the woods.

More info:

  https://gist.github.com/retronym/5081754
  https://groups.google.com/forum/?fromgroups=#!topic/scala-internals/MOvmcnbyb_g

Note that the sub package is named 'tpe' and not 'Types' to avoid
potential problems on case insensitive file systems, given the existing
trait 'Types.'
Bring some sanity to the stability test.

There is no reason to be stability testing every piece of
bytecode we've ever encountered. If the compilation products
are unstable, then testing 20,000 classfiles will reveal it.
Or it won't; either way, we can stop there. So I cut a gordian
knot and focused the stability test solely on the contents of:

  library reflect compiler

Next I cut the "custom ant task" cord. There's a tool for
diffing files, it's decades old, it's called diff. It does
the entire job we need. If it doesn't work on windows, it
doesn't matter. The stability test is not something which
needs to run in every environment. Either the classfiles
are stable or they aren't.

Generated the ant xml for building quick.{lib,reflect,comp}
and strap.{lib,reflect,comp} so they are identical modulo the
compiler used to build them, probably for the first time ever.
I'm sure they won't stay that way, but it's a step.
Enabling commit for interactive/scaladoc modules.

This is a non-behaviorally-changing setup commit which
re-routes bits of code through avenues which can more easily
be influenced by subclasses of Global.
Moved scaladoc sources into separate directory.

This change is not externally visible. It moves the scaladoc
sources into src/scaladoc and adds an ant target for building
them. The compilation products are still packaged into
scala-compiler.jar as before, but with a small change to
build.xml a separate jar can be created instead.
Moved interactive sources into separate directory.

As with the preceding commit, this has build-internal
effects only.
Teach partest the magic of abstraction.

Some new partest abilities which were necessary to deal with
additional standard jars. These new abilities aren't yet put
to the test because scaladoc and interactive are still going
into the compiler jar.

No longer need each jar or classes directory be named
directly for partest to find them.
Give partest its own classpath in build.xml.

Separate from (and larger than) pack.classpath. Then take
the opportunity to lower the comic/tragic level of duplication
in build.xml.
Give interactive tests their own target.

% ant test.interactive
Moved scaladoc code into src/scaladoc.

This leverages the preceding several commits to push scaladoc
specific code into src/scaladoc. It also renders some scanner
code more comprehensible.
Moved interactive code into src/interactive.

As with scaladoc, pushes presentation compiler specific
code into its separate source area.
Eliminated all forInteractive/forScaladoc uses.

This is the commit which brings it all together. The booleans
forInteractive and forScaladoc are now deprecated and are not
inspected for any purpose. All behavioral changes formerly
accomplished via tests of those flags are embodied in the globals
built specifically for those tasks.
Deprecated custom ant task 'Same'.
a typo corrected
Merge pull request #2226 from adriaanm/pr-2208-rework

[rework] Modularized scaladoc and presentation compiler.
Merge pull request #2201 from retronym/topic/types-break-down-squash

Carve up Types.scala
IntellIiJ module definitions for scaladoc, interactive and continuations-*.
Add eclipse projects for interactive, scaladoc.
Modularized the repl.

Following in the footsteps of scaladoc and interactive.
The interpreter sources move into src/repl, and are given
a separate build target. As with the others, at present
they are still packaged into scala-compiler.jar.

A summary of changes:

 - repl requires use of ReplGlobal (this was already implied)
 - macro code's repl-specific classloader hack pulled into overridable
   method and overridden in ReplGlobal
 - removed -Ygen-javap option to eliminate backend's dependency on javap
 - removed -Yrepl-debug option (can still be enabled with -Dscala.repl.debug)
 - pushed javap code into src/repl so javax.tools dependency can bee
   weakened to the repl only
 - removed some "show pickled" related code which hasn't worked right
   in a while and isn't the right way to do it anymore anyway. Will
   return to fix showPickled and provide it with some tests.
Close after slurping (fixes SI-7244)

Since slurp by definition is the noise made by the straw when
the cup is empty and all milk shake is consumed, we can safely
close after slurping.

Use case was deleting a test artifact on Windows.
Merge pull request #2232 from paulp/pr/modularize-repl

Modularized the repl.