Reverts 211df62491 .

A strange blip in the benchmarks makes me wish to see
this on the sidelines.
More style tips for team macros.
Trying to set an example in the land of macros.

Hopefully there are useful examples to be had in here.
Please note that you should never be testing "x.size != 0",
use isEmpty or nonEmpty.  Even if these happen to be small
collections, it's not a habit you want to form: size is O(n)
on a number of collections.  (Most pointedly, Lists.)
cleaning up macros, one step at a time
SI-5690: no-selector match in function yields function

the implicit beta-reduction performed by typedFunction on a Function(.., Match(EmptyTree, ...))
must of course only be done when the selector actually is empty...

(yes, typedMatchAnonFun needs to be cleaned up, I know)
clean up typedMatchAnonFun
A brand new, fast classfile parser.

Try it: ./tools/dump-class ./build/quick/classes

The output is intended to be easy to filter on the command line.
This is a starting point for lots of interesting bytecode analysis
for which we have waited too long.

Example.  All generic signatures we produce.

  // almost 20K classfiles
  % find build/quick/classes -name '*.class' |wc -l
      18519

  // fully parsed in 6 seconds
  tools/dump-class build/quick/classes |grep "^  signature" | wc -l
      50802

  real	0m6.230s

It's designed to be easy to make faster if you don't care about
particular classfile bits; you can override those methods to jump
forward in the input stream rather than building a structure.
For just a little sampling, here are our most frequently
repeated name/signature combinations.

194   signature               <init>  ()V   // this one is weird, wonder why there's a generic signature
115   signature    $div$colon$bslash  <A1:Ljava/lang/Object;>(TA1;Lscala/Function2<TA1;TA1;TA1;>;)TA1;
105   signature          applyOrElse  <A1:Ljava/lang/Object;B1:Ljava/lang/Object;>(TA1;Lscala/Function1<TA1;TB1;>;)TB1;
103   signature                 view  ()Ljava/lang/Object;
101   signature                toSet  <B:Ljava/lang/Object;>()Lscala/collection/immutable/Set<TB;>;

And the top five name/descriptor combinations.

11170   descriptor           <clinit>  ()V
10155   descriptor   serialVersionUID  J
7130   descriptor              apply  (Ljava/lang/Object;)Ljava/lang/Object;
3028   descriptor              apply  ()Ljava/lang/Object;
2426   descriptor             <init>  ()V
Better position printing in NodePrinters.

Try this unreasonably long command line:

scalac -Xprint-pos -Yshow-trees -Xprint:all -Yrangepos *.scala
SI-5702 Pattern parser halts on star

In patterns, the parser halts when it sees stars.
This means it does not handle infix notation for a case class
named "*".  This patch uses lookahead to decide whether to parse
'_' '*' as a sequence pattern or as the start of infix.
(For both normal and error cases, the tokens are always consumed
immediately.) Error messages are improved for _* (as a help to learners)
and slightly improved recovery helps the parse continue.
The entry point for XML patterns is now distinct; otherwise,
the change is local to pattern3-simplepattern; the entry point
for simplepattern() is unchanged because it is commented
"hook for IDE."
Merge commit 'refs/pull/443/head'; commit 'refs/pull/444/head' into develop