HIDDEN => ARTIFACT

This test is necessary in the API to tell apart useful synthetic symbols
(such as accessors) and low-level compilation artifacts (such as $outer).

However `isHidden` (as it's currently named in the compiler) is too generic.
Hence I renamed it along with the corresponding flag. Now the test says
`isArtifact` and the flag is named ARTIFACT.

Despite being an improvement over the first version, `isArtifact` is
still a bit unlucky. The name I like is `isImplementationArtifact`, but that's
a mouthful to be used in compiler hacking. Moreover, IMPLEMENTATION_ARTIFACT
looks weird.

For a discussion about related stuff see:
http://groups.google.com/group/scala-internals/browse_thread/thread/d04e762127737968
https://github.com/scala/scala/pull/1114
SI-6167 Override SeqLike#isEmpty for better performance

This results in a faster Vector#isEmpty (and head, tail, last, init)
because it avoids building a VectorIterator just to check if
iterator.hasNext is false.
Other classes which have not overridden the implementation of SeqLike
also benefit from it.
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.
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
Merge pull request #1114 from scalamacros/topic/is-artifact

Introduces the `isArtifact` test for symbols
Merge pull request #1140 from soc/SI-6167

SI-6167 Override SeqLike#isEmpty for better performance
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