SI-7174 Fix initialization issues

Without constant inlining, the compiler would not even bootstrap
because it depends on constant inlining hiding initialization issues
which would cause a NPE otherwise.

In this case, global is null at runtime, but no NPE is happening
despite accessing members of global (see SubComponent), because
constant inlining has copied the values of those members to the
call-sites and eliminated the dereference of global.

This commit fixes the initialization order.
SI-7592 Remove scala.tools.nsc.util.MultiHashMap
SI-7487 Revert "Removed -Ymacro-no-expand."

This reverts commit 71fb0b83a, which itself reverted the fix for SI-6812.
Merge pull request #2720 from adriaanm/ticket-7487

SI-7487 Revert "Removed -Ymacro-no-expand."
Fixes checkinit build failure caused by quasiquotes pull request

The failure was caused by recent refactoring that moved fields that are
expected by reflection Reifier from early init block to the body of the
class. According to checkinit this may cause initialization issues
although they do not really happen in real life as most of these fields
aren't used during quasiquotes' reification.
Fix repl-save test

Make the test a SessionTest, where the file name appears just
once, in the transcript, and is trivially compared against itself.

The contents of the saved file are still output and compared with
the check file.
SI-4684 Repl supports whole-file paste

Add a file argument to the :paste command which loads the
file's contents as though entered in :paste mode.

The :paste command is replayable.

Samples, including companions defined together:

```
scala> :paste junk.scala
File contains no code: junk.scala

scala> :paste no-file.scala
That file does not exist

scala> :paste obj-repl.scala
Pasting file obj-repl.scala...
<console>:2: error: expected start of definition
         private foo = 7
                 ^

scala> :paste hw-repl.scala
Pasting file hw-repl.scala...
The pasted code is incomplete!

<pastie>:5: error: illegal start of simple expression
}
^

scala> :replay
Replaying: :paste junk.scala
File contains no code: junk.scala

Replaying: :paste obj-repl.scala
Pasting file obj-repl.scala...
defined trait Foo
defined object Foo

Replaying: Foo(new Foo{})
res0: Int = 7
```
SI-4684 Repl supports raw paste

By special request, :paste -raw simply compiles the pasted
code to the repl output dir.

The -raw flag means no wrapping; the pasted code must be
ordinary top level Scala code, not script.
Merge pull request #2722 from densh/topic/qq-checkinit

Fixes checkinit build failure caused by quasiquotes pull request
Merge pull request #2723 from som-snytt/issue/fix-repl-save-test

Fix repl-save test
Merge pull request #2725 from som-snytt/topic/repl-paste-file

SI-4684 Repl supports whole-file paste (rebased)
Merge pull request #2708 from soc/SI-7174

SI-7174 Fix initialization issues
Merge pull request #2718 from soc/SI-7592-multihashmap

SI-7592 Remove scala.tools.nsc.util.MultiHashMap