Corrects behavior of finalResultType.

The implementation had come to depend on finalResultType
accidentally doing things beyond its charter - in particular,
widening types. After hunting down and fixing the call sites
depending on the bugs, I was able to rewrite the method to do
only what it's supposed to do.

I threw in a different way of writing it entirely to suggest how
some correctness might be obtained in the future. It's a lot
harder for a method written like this to break.
SI-7839 Final val breaks checkinit build

Scalac does not care to initialize the unused field it emits
for a `final val`.  Users of the accessor method, which supplies
the constant definition inline, will find that -Xcheckinit will
throw.

Therefore, we don't use `final` for the `val phaseName`.
Merge pull request #2943 from som-snytt/issue/7839-phase-ass-chkinit

SI-7839 Final val breaks checkinit build
Widen type of outer accessor.

This is the key ingredient so TypeTree(sym) can resist
widening the type.
Reducing variation of tree creation methods.

TreeDSL has no future - it was always a temporary measure
waiting for something like quasiquotes to come along. In this
commit I cull as much of it as I can, especially the delicate
matter of creating new DefDefs and ValDefs, which I completely
turn over to the old style creators.

I unified all the symbol-based DefDef and ValDef creators under
a single method, since it was yet another place where ctrl-C and
ctrl-V were being punched with glee. Was beaten to the punch on
adding copyTypeDef to fill out the *Def creators.

Eliminated as many redundant positioning calls as I could find.
If you are creating a DefTree tree based on a symbol, it will
always have an atPos(sym.pos) { ... } wrapped around it. You
don't need another one.

All of this is motivated by positions work: positions are
assigned in so many places and in such an ad hoc fashion that
it is impossible to bring consistency to that without first
bringing some consistency to tree creation.
Merge pull request #2936 from paulp/pr/one-team-one-position

Consolidate Position classes.
SI-7843 Restore JSR 223 service entry

The 2.10 fix to remove the ScriptEngine service entry
was inadvertently forwarded to 2.11.

This commit reverts and adds a test.

This situation was entirely foreseen by retronym,
proving beyond doubt that he is in fact a time traveler,
as hinted by his name. He brings bugs forward into the
future and returns into the past with fixes and other
alien technology like scalaz.
Merge pull request #2945 from som-snytt/test/jsr223-service

SI-7843 Restore JSR 223 service entry
Merge pull request #2931 from paulp/pr/TreeDSL

Reducing variation of tree creation methods.
Merge pull request #2884 from retronym/ticket/3832

SI-1909 SI-3832 SI-7007 SI-7223 Improved handling of larval objects
SI-7844 Intellij setup.sh is not working for Ubuntu 12.04

Added "-f" option to the command "rm"
Merge pull request #2946 from jinfu-leng/ticket/7844

SI-7844 Intellij setup.sh is not working for Ubuntu 12.04
SI-7841 Remove commented out AnyRef specialization from Function{0,1}.

In a sign of decreased optimism about that facility.
SI-7845 Disable test for JSR 233

For Paul, it steals focus when it runs.

For me, it fails with some platform specific extra output:

-ScriptEngineManager providers.next(): javax.script.ScriptEngineFactory: Provider apple.applescript.AppleScriptEngineFactory could not be instantiated: java.lang.UnsatisfiedLinkError: no AppleScriptEngine in java.library.path
 n: Object = 10
 12345678910

So off to the holding pen for now.
Merge pull request #2948 from retronym/ticket/7845

SI-7845 Disable test for JSR 233
Merge pull request #2935 from densh/topic/si-7304-6489-6701

SI-6701, SI-7304, SI-6489, variable arity definitions refactoring
SI-7847 Static forwarders for case apply/unapply

These were excluded in f901816b3f because at the time they
were compiler fiction and translated to calls to the case
class constructor or accessors.

But since they are now bona-fide methods (albeit still occasionally
bypassed as an optimization), we can expose them conveniently to our
Java brethren.

The cut-and-pastiness of GenBCode starts to hinder maintenance.
Here's a report of further duplication that we have to fix up
post haste: https://gist.github.com/retronym/6334389
SI-7841 Remove AnyRef specialization from AbstractPartialFunction

This was missed in cc3badae1

Compatibility classes for formerly specialized variants used
by Scalacheck have been added as a stopgap measure until we
publish the next milestone.
SI-7841 More robust unspecialization of names

Names like `T1$sp`, which can arise from `AnyRef` specialization,
were leading to negative length Names if they ever passed through
`unspecializedName` or `splitSpecializedName`. This code path was
touched when printing the tree of a certain AnyRef specialized
classes after specialization, such as `AbstractPartialFunction`
(which had such specialization until a few commits ago.)

This commit handles that case correctly, and generally hardens
against unexpected names, which could pop up from third party
classes.

The documentation for `splitSpecializedName` transposed the
class and method specializations. The things you discover
when you turn examples in documentation in to test cases!

In addition, we now require non-negative length and offset in
`newTermName`
Fix typo in documentation.