SI-6338 fixes the unchecked warning in quick.comp

All those months when I thought it was yet another spurious error
in the new pattern matcher...
SI-6746 Fixes MANIFEST.MF package entry (s.r.makro -> s.r.macros)
Stream.zip naturalsEx example does not compile => remove extra zip call
Fix Iterator#copyToArray (fixes SI-6827).

As pointed out in #scala, when using a non-zero start it's possible
to get an ArrayIndexOutOfBoundsException due to an incorrect bounds
check. This patch fixes this, as well as another potential bounds
error, and adds test cases.

Incorporates some other suggestions by Som-Snytt to ensure that
callers will get useful error messages in cases where the start
parameter is wrong (negative or out-of-array-bounds).

Review by @som-snytt.
Merge pull request #1687 from scalamacros/topic/unchecked-pattern-match

fixes the unchecked warning in quick.comp
Remove stray debugging output line.

I finally reached my "CHECK THREAD ACCESS" limit.
Merge pull request #1799 from paulp/pr/check-thread-access

Remove stray debugging output line.
SI-5017 Poor performance of :+ operator on Arrays

Control performance of :+ and +: operator on my machine were 700-800 ms

After adding size hint on the implementation in SeqLike, it went down to 500-600 ms

But with specialixed implementation in ArrayOps, brings it down to 300-400 ms

Unfortunatly, this method will only be called when the Array object is being referenced directly as it's type, but that should be the case enough times to justify the extra method.

I ended up removing the sizeHint in SeqLike because it made the execution of the "benchmark" slower when the Array was being manipulated as a Seq.

Side note: Interestingly enough, the benchmark performed better on my virtualized Fedora 17 with JDK 7 than natively on Mac OS X with JDK 6
SI-6829, SI-6788, NPEs during erroneous compilation.

Have to intercept trees which have a null type due to errors
before they leave the warm confines of 'def typed' because from
that point everything assumes tree.tpe != null.
Moves annotationError outside typedAnnotation

This refactoring allows everyone from the compiler, e.g. the macro engine
which expands annotation-emitting macros, to produce annotation errors.
adds Tree.nonEmpty

So that trees become consistent with isEmpty on lists and options.
showRaw can now print positions
the scanner is now less eager about deprecations

When healing braces it isn't very useful to report deprecation warnings,
especially since this process is just simple context-free skimming, which
can't know about what positions can accept what identifiers.
Adds extractors for TypeName, TermName and Modifiers

This change allows to pattern match over type names, term names and
modifiers. Otherwise it can be quite painful to match over complex trees
as each name or modifiers requires a guard.

This pull request also changes the name of default constructor for term
and type names i.e. TypeName(s) instead of newTermName(s). This is
shorter to type, more consistent with the rest of reflection api and
consistent with the way it will be pattern matched later on.
Changes reifier to use shorter name constructors
Changes tree pretty printer to use shorter name constructors
Changes reflection tests to use shorter name constructors
renames c.fresh to c.freshName
enclosures are now strongly typed and are no longer vals
macro expansions are now auto-duplicated

The fix still requires macro developers to be careful about sharing trees
by references, because attributed DefTrees will still bring trouble.

However this is an improvement, because it doesn't make matters worse
and automatically fixes situations similar to one in the test.

A much more thorough discussion with a number of open questions left:
http://groups.google.com/group/scala-internals/browse_thread/thread/492560d941b315cc