updating resolveDups() to use MethodTFA.mutatingInterpret()
Basing Futures on Try instead of Either
SI-6185 - add "prepare" hook to ExecutionContext

Enables important abstractions to be built on top of futures,
such as Twitter's "Local" for handling data local to a callback chain.
Temporarily skips failing test due to optimizer bug SI-6188

Also swaps the arguments to method transform on Try, so as to mirror transform on scala.concurrent.Future.
Merge branch 'try-based-futures' of https://github.com/heathermiller/scala into try-based-futures
SI-6145 lax typing of args to synthetic case-labels

Use wildcard for the expected type of the arguments of a jump to a label
synthesized by the pattern matcher... except during erasure: we must take the
expected type into account as it drives the insertion of casts!

It's ok since we're typing the translation of well-typed code. The only "type
errors" we catch are skolem mismatches. (after erasure the existential types that
before caused problems have disappeared.)

It's necessary to balance GADT magic, SI-6145, CPS type-driven transforms and
other existential trickiness. I've exhausted all other semi-clean approaches I
could think of:
  - the right thing to do -- packing existential types -- runs into limitations
    in subtyping existential types,
  - casting breaks SI-6145 (and it's an unnecessary cast at run time),
  - not casting breaks GADT typing as it requires sneaking ill-typed trees
    past typer
SI-6183 don't crash on type error in outer test

unfortunately without test case since the report was hard to minimize
since it was a crash on erroneous code, I figured a backstop against a crash should suffice
SI-5498 completes ModuleMirror.instance

As per referenced issue, this patch implements `instance`
for ModuleMirrors corresponding to nested and inner modules.
Added tests, removal of unnecessary methods, fixes prepare
Enable inlining in constructors.

Inlining in constructors has been disabled a long
time ago due to some VerifyErrors. Unfortunately,
@dragos cannot recall what exactly was the problem.
I tried to enable inlining in constructors and I
didn't see any problem.

`Predef.assert` calls in class constructors are one
of the biggest contributors to closure allocation
in a compiler so we better off get rid of it.

Added a test-case that checks if inlining in
constructors works properly.

Review by @magarciaEPFL and @paulp.
SI-6186 TypeTags no longer supported in macros

The original idea was to support both both TypeTags and ConcreteTypeTags as
context bounds on macro implementations.

Back then TypeTags were the implied default flavor of type tags. Basically
because "TypeTag" is shorter than "ConcreteTypeTag" everyone jumped onto
them and used them everywhere.

That led to problems, because at that time TypeTags could reify unresolved type
parameters ("unresolved" = not having TypeTag annotations for them). This
led to a series of creepy errors, when one forgets to add a context bound
in the middle of a chain of methods that all pass a type tag around, and then
suddenly all the tags turn into pumpkins (because that unlucky method just
reifies TypeRef(NoPrefix, <type parameter symbol>, Nil and passes it down
the chain).

Hence we decided to rename ConcreteTypeTag => TypeTag & TypeTag => AbsTypeTag,
which makes a lot of sense from a reflection point of view.

Unfortunately this broke macros (in a sense), because now everyone writes
TypeTag context bounds on macro implementations, which breaks in trivial
situations like: "def foo[T](x: T) = identity_macro(x)" (the type of x
is not concrete, so macro expansion will emit an error when trying to
materialize the corresponding TypeTag).

Now we restore the broken balance by banning TypeTag from macro impls.
This forces anyone to use AbsTypeTags, and if someone wants to check the input
for presence of abstract types, it's possible to do that manually.
Merge pull request #1082 from VladUreche/topic/remove-anyref-from-library

Removes AnyRef specialization from library
Merge pull request #1080 from scalamacros/ticket/6186

SI-6186 TypeTags no longer supported in macros
Doc fix on exec ctx prepare method, fix to tests
Merge pull request #1085 from gkossakowski/inline-in-constructors

Enable inlining in constructors.
Merge pull request #1084 from VladUreche/issue/5933

SI-5933 do the new patmat translation for scaladoc …
Merge pull request #1043 from magarciaEPFL/fixes210

updating resolveDups() to use MethodTFA.mutatingInterpret()
SI-6040 error on unauthorized extension Dynamic

authorization is easy to get: `import language.dynamics`
Fix test for ExecutionContext.prepare
SI-5947 works around getDeclaredClasses

Our name mangling scheme w.r.t stuff nested into objects conflicts
with JVM's ideas of beauty, which messes up getDeclaredClasses.

Scala reflection needs getDeclaredClasses to convert between Scala and Java,
so the situation looked grim. Greg suggested a workaround described in:
https://issues.scala-lang.org/browse/SI-4023?focusedCommentId=54759#comment-54759.

Luckily the workaround worked!