SI-5959 type equality now accounts for mirrors

TypeRef(ThisType(<package1>), sym, args) should always be equal to
TypeRef(ThisType(<package2>), sym, args) regardless of whether
package1 and package2 actually represent the same symbols of not.

This goes for subtyping (<:<) and type equality (=:=).
However regular equality (==) and hashconsing is unaffected
as per http://groups.google.com/group/scala-internals/browse_thread/thread/4bef4e6987bb68fe

This is done to account for the fact that mirrors share normal symbols,
but never share package symbols. Therefore at times it will occur that
the same types loaded by different mirrors appear different because of
the package symbols. More details: https://issues.scala-lang.org/browse/SI-5959.
Adds `Type.resultType` to reflection API

Seems to be quite an essential piece of functionality.

Got requests for it from Paul back then, and now Daniel
in his latest blog post has to painfully pattern match
his way to resultType.
SI-5907, SI-5009 case-class copy defaults only for first param list

`copy` no longer returns anonymous functions if there are multiple parameter lists, reverts most of 40e7cab7a2.
Cleaned up the special type completer for copy methods.
introduce -Ypatmat-debug (no new functionality)

the setting is actually a no-op until I can figure out how to
convince the inliner to inline patmatDebug (/cc @magarciaEPFL)
SI-4691 exhaustivity: `unapply: Some` = irrefutable

overhauls treeMakersToConds in the process -- was getting a bit unwieldy
SI-6008 use static knowledge of success of type tests

augment the equality axioms to take into account that
a type test against the static type of a variable succeeds unless the variable is null

for exhaustivity we disregard null, so the type test always succeeds
during unreachability we model this knowledge as the obvious implication
SI-5981, SI-5979, SI-5973 Closed. Maintenance to Try.
Merge pull request #831 from dgruntz/issue/6033

SI-6033 Closed. Provides implicit conversion from BigInteger to BigInt
Merge pull request #822 from scalamacros/ticket/5959

SI-5959 type equality now accounts for mirrors
Merge pull request #823 from scalamacros/topic/result-type

Adds `Type.resultType` to reflection API
Merge pull request #826 from lrytz/t5907

SI-5907, SI-5009 case-class copy defaults only for first param list
Updates scala.util.control.NonFatal documentation, as suggested in code review
refactor to implement @retronym's review
Merge pull request #824 from adriaanm/ticket-4691_6008

[SI-4691, SI-6008] improve patmat analyses: irrefutable user-defined extractors, no-op type tests
Merge pull request #830 from heathermiller/topic/tryeither-fixes

SI-5981, SI-5979, SI-5973, SI-5890 Closed. Maintenance to Try.
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