Enhanced presentation compiler test infrastructure

* Removed unneeded .flags.
* Renamed a few methods in `InteractiveTest`.
* Force the presentation compiler to shut down after each test.
* -sourcepath in the .flags file is now relative to the test's base directory.
* Use `InteractiveReporter` in Presentation Compiler tests.
  By using the `InteractiveReporter`, compilation errors are collected in the
  compilation unit. This was necessary for testing SI-5975.
Allow attachments for symbols, just like for trees.

Removes the two global hash maps in Namers, and the one in NamesDefaults. Also fixes SI-5975.
SI-5974 make collection.convert.Wrappers serializable
macro-based string interpolation formatter

This commit provides a macro based string interpolation formatter.
The macro is implemented in MacroImplementations.scala.

In order to still be able to build a new STARR, the implementation
in StringContext.f is not yet changed. This will be replaced in
a later commit.
adds the sha1 files of the new starr / stringContext.f

This commit provides the new sha1 codes of the new STARR.
Moreover, it replaces the implementation of StringContext.f
to `macro ???`. The implementation is magically hardwired into
`scala.tools.reflect.MacroImplementations.macro_StringInterpolation_f`
by the new STARR.
stringinterpolation macro test files

This commit adds test files
neg: checks the error messages generated by the compiler
run: checks the macro implementation features
removes special case for BigInteger

After rebasing, the commit 34d36108bf is in the history, therefore
a patch in my code can be removed as an implicit conversion from
BigInteger to BigInt was added in commit 34d36108bf.
The tests cases test this case and still pass.
SI-6042 Improve type selection from volatile type error

 - Display the type of the typed qualifier (qual1), to avoid the
   message "Illegal type selection from volatile type null".
 - Show the upper bound, which is used to calculate the volatility.
Added a HIDDEN flag.

[Still not a fan of the massive overlap between GenJVM and GenASM. I do
not think such duplication should be allowed into master at all, neither
in experimental backends nor anywhere else. Putting us in the position
that we have to actually switch to stop incurring the duplication is
engineering-by-prayer.]

The SYNTHETIC flag was long ago discovered to be inadequately specific
to allow for emitting ACC_SYNTHETIC in bytecode. In this commit is born
a HIDDEN flag, which signals the flagged symbol as implementation detail
which should not be considered during typechecking, and which will
receive ACC_SYNTHETIC during code generation.

Unsure what should be hidden, I conservatively marked a few things which
seem safely hidable.

 - $outer fields and accessors
 - classes whose classfile has the jvm Synthetic attribute
   (not to be confused with the SYNTHETIC flag)

I leave additional choices to those who have a better idea how
this will materialize (i.e. IDE guys.)

It is easy to selectively introduce this flag; but the SYNTHETIC flag
is set or checked for in so many places, it is very difficult to alter
the logic around it (either by setting it less, or checking for HIDDEN
only) with much confidence. So right now HIDDEN is only used to help
ACC_SYNTHETIC make it into bytecode - it is only set in conjunction with
SYNTHETIC, and it doesn't help anyone hide from the typechecker.

Review by @dragos, @odersky.
bandaid in GenASM for SI-6049
Revert "GenASM: pipeline disk-write with building of classfiles"

This reverts commit 5d12fa4b791e73d5c99a0e145d28cbaba12823d2.
FIXING THE SAME MISTAKE BUT IN STRAP.  Yay for copy-paste ant-magic
Merge pull request #864 from jsuereth/fix/critical-build-fixins

FIXING THE SAME MISTAKE BUT IN STRAP.  Yay for copy-paste ant-magic
Merge pull request #861 from dragos/revert-genasm-bg-thread

Revert "GenASM: pipeline disk-write with building of classfiles"
Merge commit 'refs/pull/825/head'; commit 'refs/pull/827/head'; commit 'refs/pull/828/head'; commit 'refs/pull/850/head'; commit 'refs/pull/858/head' into 2.10.x
SI-6032 Enhance TaskSupport documentation.
SI-6022 model type-test-implication better

we use subtyping as a model for implication between instanceof tests
i.e., when S <:< T we assume x.isInstanceOf[S] implies x.isInstanceOf[T]
unfortunately this is not true in general.

SI-6022 expects instanceOfTpImplies(ProductClass.tpe, AnyRefClass.tpe), but
ProductClass.tpe <:< AnyRefClass.tpe does not hold because Product extends Any

however, if x.isInstanceOf[Product] holds, so does x.isInstanceOf[AnyRef],
and that's all we care about when modeling type tests
SI-6015 assertion (in Type-flow analysis) that wasn't, valid counterexample found
don't crash on syntactically incorrect value classes
statistics: print millis instead of micros.