SI-7782 Derive type skolems at the ground level

Rather than at the current value of `skolemizationLevel`,
which could be influenced by an in-flight existential
subtype computation.

This method is called in `PolyTypeCompleter`, which
could be constructed by the lazy type completer of the
enclosing class. So currently it is closing over a mutable
variable; hence the Heisenbug.

This issue was exposed by the changes in b74c33eb860,
which was introduced in Scala 2.10.1.
typedAnnotated no longer emits nulls

Adds a null-check in original synthesis for the result of typedAnnotated.
Previously it was possible for the aforementioned result to look like
TypeTree(<tpe>) setOriginal Annotated(..., null). Not anymore.
Commit .gitignore directly

Rather than relying on the cloner to copy the
provided gitignore.SAMPLE files.

This finishes the job started in c48509598, mostly
by reverting that commit and moving the two existing
SAMPLE files to the final destinations.

Use `.git/info/exclude` to augment the list of patterns
with entries specific to your workflow.
(cherry picked from commit b51cb581270da7021b2ea122dc059847101d56a7)

==============================================
Paring back the scope of our shared .gitignore

Importantly, limit the exclusion of build.properties
to the file in the root directory, paving the way for
the return of an SBT build.

  - Unignores .bak, .jar, and ~
  - limit ignorance of qbin to the root directory

.log files, generated by partest, are still ignored.

To see ignored files in your workspace, try:

    git ls-files --others --ignored --exclude-standard -- test | grep log
    git status --ignored -- test
(cherry picked from commit f0bbd2ca32acb40be37dc382c1f95081deca3f22)
Merge pull request #2897 from retronym/backport/gitignore

[backport] Commit .gitignore directly
Merge pull request #2891 from som-snytt/issue/7790-no-scriptengine

SI-7790 No ScriptEngine in 2.10 build
Change Scala license to unmodified 3-clause BSD.

No longer using the slightly reworded 3-clause BSD license.
This does not change the meaning of the license,
just aligns it with the standard wording.
SI-7150 Replace scala.reflect.internal.WeakHashSet

Replaces scala.reflect.internal.WeakHashSet with a version that
* extends the mutable.Set trait
* doesn't leak WeakReferences
* is unit tested
SI-7149 Use a WeakHashSet for type uniqueness

Currently type uniqueness is done via a HashSet[Type], but
that means the Types live through an entire compile session, even
ones that are used once. The result is a huge amount of unnecessarily
retained memory. This commit uses a WeakHashSet instead so that Types
and their WeakReferences are cleaned up when no longer in use.
Modify perRunCaches to not leak WeakReferences

perRunCaches was using a HashMap of WeakReferences which meant it would
accumulate WeakReferences over time. This commit uses a WeakHashSet
instead so that the references are cleaned up.
Merge pull request #2899 from som-snytt/issue/4760-parser

SI-4760 Parser handles block-ending import
Merge pull request #2876 from retronym/ticket/7782

SI-7782 Derive type skolems at the ground level
Merge pull request #2901 from gkossakowski/backport-uniques-memory-fix

Backport #2605 to 2.10.x: SI-7149 Use a WeakHashSet for type uniqueness
Merge pull request #2888 from xeno-by/topic/typed-annotated

typedAnnotated no longer emits nulls
Merge remote-tracking branch 'scala/2.10.x' into merge-2.10.x

Conflicts:
	bincompat-backward.whitelist.conf
	bincompat-forward.whitelist.conf
	src/reflect/scala/reflect/internal/SymbolTable.scala
	src/reflect/scala/reflect/internal/util/WeakHashSet.scala
	src/reflect/scala/reflect/runtime/JavaMirrors.scala
Merge pull request #2881 from adriaanm/license-cleanup

Change Scala license to unmodified 3-clause BSD.
Merge pull request #2914 from gkossakowski/merge-2.10.x

Merge 2.10.x into master
SI-7805 REPL -i startup

Tested with a ReplTest that loads an include script.

ReplTests can choose to be `Welcoming` and keep a
normalized welcome message in their check transcript.