SI-8306: handle SWITCH nodes with just default case

Handle properly SWITCH nodes that contain just a default case in optimizer
(ConstantOptimization). SWITCH with just default case is expressed as a
node with empty tags and exactly one label. We can handle such nodes
easily by introducing a shortcut in logic that computes reachableLabels.

Add a test case which triggers patmat to generate SWITCH node with just
a default case.

Fixes SI-8306.
Merge pull request #3560 from gkossakowski/issue/SI-8306

SI-8306: handle SWITCH nodes with just default case
Fix quasiquote terminology to be consistent with Scheme

1. Rename cardinality into rank. Shorter word, easier to
   understand, more appropriate in our context.

2. Previously we called any dollar substitution splicing
   but this is not consistent with Scheme where splicing
   is substitution with non-zero rank.

   So now $foo is unquoting and ..$foo and ...$foo is
   unquote splicing or just splicing. Correspondingly
   splicee becomes unquotee.

3. Rename si7980 test into t7980
Tweak signature for quasiquote's apply

Even though quasiquotes are whitebox macros their
return values are in fact always trees. This might
help IDEs with macro expansions turned off.
Merge pull request #3568 from densh/topic/qq-terminology

Fix quasiquote terminology to be consistent with Scheme
SI-8316 SI-8318 SI-8248 reintroduces resetAllAttrs

Unfortunately, due to the aforementioned bugs we have to delay our triumph
over resetAllAttrs.

Therefore, I'm rolling back the internal changes to scalac introduced in
https://github.com/scala/scala/pull/3485. Our public reflection API interface
in Scala 2.11 is still going to contain only resetLocalAttrs, but both
the reifier and the label typechecker are too heavily addicted to resetAllAttrs
to do away with it right now.
Merge pull request #3569 from xeno-by/ticket/8316

SI-8316 SI-8318 SI-8248 reintroduces resetAllAttrs