Fix SI-6208.  mutable.Queue now returns mutable.Queue for collection methods rather than MutableList.
Fixes backend crash due to incorrect consumedTypes

This started out as a compiler crash after Greg copied the
comprehension methods to List and made them final.

The culprit was the dead code elimination phase, which after
sweeping pieces of code was unable to restore the stack to its
original state, thus causing the ASM backend to crash notifying
the resulting bytecode is incorrect.

The dead code elimination phase uses the icode Instructions'
consumedTypes to determine what needs to be dropped from the
stack when an instruction is eliminated, but the consumedTypes
were only defined for a handful of instructions. So dce encountered
a DUP instruction for which it did not have consumedTypes defined
and did not restore the stack correctly.

The consumedTypes/producedTypes for icode instructions are
redundantly defined in 3 separate places:
 - Opcodes.scala (consumedTypes/producedTypes)
 - ICodeCheckers.scala (for checking icode)
 - TypeFlowAnalysis.scala (for computing types on the stack at each
program point)

Since the Opcodes types are the only ones visible outside, I suggest
we use them in ICodeCheckers.scala and TypeFlowAnalysis.scala too. But
we should make such changes after the release, as we're chilling out
by the lake with a glass of good wine: SI-6234

The relevant discussion around it can be found at:
https://groups.google.com/forum/?fromgroups#!topic/scala-internals/qcyTjk8euUI[1-25]

Many thanks to Paul for his help!

Review by @magarciaEPFL or @paulp.
adds the `skipPackage` attribute to Scaladoc

Present in http://www.slideshare.net/VladUreche/scaladoc-reflection
but not actually implemented in the ant task. Seems to be overlooked.
Fixes SI-6150.

Removes the `VectorReusableCBF` and pattern matching on it in optimized `Vector` methods.
Instead, we now have a new `ReusableCBF` instance in `IndexedSeq` and check for equality
when trying to optimize `:+`, `+:` and `updated`.
This overridden `ReusableCBF` is used by `IndexedSeq`, `immutable.IndexedSeq` and
`immutable.Vector`.

The net effect is that calling `:+` and similar methods on a `Vector` instance with
a `CBF` that came from `IndexedSeq` or somewhere lower in the hierarchy will always
create a `Vector` using the optimized method.
cleanup of reflection- and macro-related stuff

mostly removes [Eugene] marks that I left back then and reviews related code
some of those tokens got left in place, because I don't know to how fix them
without imposing risks on 2.10.0
materializeImplicit and implicitsOfExpectedType

Previously these guys were coupled in a single method. Now they are separated.
In my opinion that helps understanding the stuff going on in implicit search.
phaseId(currentPeriod) >= erasurePhase.id

Simplifies this expression found in Typers to just phase.erasedTypes.
Dominik's comments on api.Mirrors
macroImplSigs => macroImplSig

We no longer have multiple canonical signatures for macro implementations,
so it was time to put the List-List-List-based logic to rest.
further cleanup of transformTypeTagEvidenceParams
more macro cleanup
pull request feedback
Merge pull request #1145 from scalamacros/topic/cleanup

cleanup of reflection and macros
Merge pull request #1141 from VladUreche/issue/asm

Fixes backend crash due to incorrect consumedTypes
removes dead code
Optimization in SubstMap.

Don't create a new type with the same symbol.  This
modification avoids the creation of 30K types and a
similar number of symbols in a compile of trunk.

Also cleaned up / deprecated a couple other type mappers.
Merge pull request #1093 from jsuereth/fix/SI-6208-2.10.x

Fix SI-6208.  mutable.Queue now returns mutable.Queue for collection met...
Modified SI-6150 fix to use intended ReusableCBF.

I also realized it didn't have to be lazy, and made it so.
shaves more than 150 lines off typedMacroBody
more cleanup for typedMacroBody