Space/Tab cleanup script - run before committing

Running this script will transform tabs into a pair of spaces and will
eliminate trailing spaces. Use at your own risk!
Add 2 benchmark sources.
Adapted indentation in scaladoc code blocks

and fixed a pesky crash in the syntax highlighting caused by invalid
chars (0x0E) in MarkupParser.scala.
Adapted usecases to full signature display
Yet another attempt to make the version a  good one

This fixes the git commit drift issue and gives us enough granularity
to make releases at any time that are cronologically increasing.
Merge pull request #294 from jsuereth/another-version-fix

Yet another attempt to make the version a  good one
Fixes SI-5248
Merge branch 'issue/5054-usecase-cleanup'

Conflicts:
	test/scaladoc/scala/html/HtmlFactoryTest.scala
optimise flag should be shown in scalac.args info
Merge remote-tracking branches 'hubertp/topic/buildinfo', 'VladUreche/issue/5248' and 'VladUreche/issue/5054-usecase-cleanup2' into develop
Cleaned up Duration for the standard library.

 - Removed Timeout from the library. Each library should provide its own implementation of Timeout
 - Removed duration package object and replaced it with regular object
 - Removed usages of post Java 1.5 TimeUnit members
 - Added factory methods for FiniteDuration
 - Cleaned up some unnecessary comments
 - Merged duration DSL with Duration.scala file

Review by: @phaller
Deprecate scala.parallel.Future and privatize a few classes.
[vpm] test file for regression on old patmat

it's a warning on new patmat -- TODO: dig deeper
[vpm] TODO note: make unapply type list stricter

when an unapply returns Option[T] where T is some ProductN, does that mean the unapply
returns 1 result, i.e., that T, or did it mean to return N results?
to disambiguate, falling back to stricter spec-adherence, which requires T be exactly TupleN for N results

for now, allow extractor result to be any product, not just tuple
[vpm] label-based translation of matches
[vpm] tailcalls support for jumpy vpm
specialize symbols for labeldef params
[vpm] typer synths Function{} for empty-sel match

typedMatchAnonFun is called from typedFunction when the function's body is a match

this is work-in-progres: the compiler currently won't bootstrap under -Yvirtpatmat
see also the pending test

make sure to use the right context in typeFunction when the body is a Match
when typer is set up for type checking a Function, the current owner is the symbol for the function,
but we'll type check a Block(List(ClassDef(cd)), New(cd)) when the function is a match,
and the function symbol is nowhere to be found, so go to outer context

in patmatvirt:
- simplified default case gen (no need for a Casegen instance)
- using CASE | SYNTHETIC to detect generated matches (for switches) and avoid typing them endlessly
  more uniform, and necessary for new-style anon Function class instance gen for matches
[vpm] fix half of my existential troubles

no need for the clunky repackExistential
pack the type of each case instead, since the skolems we've created shouldn't last beyond the case anyway

this way we don't end up with fresh, incompatible, skolems for every case, but a neatly packed existential
[vpm] pack types of if branches before lubbing

this way we don't end up with fresh, incompatible, skolems for every branch, but a neatly packed existential
you get much nicer lubs this way -- threw in a fast path (I hope) that avoids lubbing when unnecessary (same types)

since lub isn't robust enough to deal with the result of packedType,
and we only really need the trivial case (S =:= T), special case it for now

... don't pack in ifs after typer, also only when virtPatmat