Avoid forcing infos of some symbols in InfoTransforms

Provides the "mayChange" hook to exclude symbols from being completed
prior to a transformInfo.
Setting travis to use oracle jdk8
Avoid computing info of TypeRefs for Object <-> Any comversions in ClassfileParser

Another bit to help avoid CyclicReferences when reading Java classes
Rename productArity in pattern matcher to prodArity

productArity is a method defined in ProductN which is inherited from
case classes. It is possible that it will be usewd in the implementation
of pattern matching in the future. The previous implementation used
the same name to mean something else: Not the arity of the case class
itself but the arity of the pattern/type it represented.

Renaming to prodArity avoids the confusion.
Refine merge of nullary and parameterless denotations.

Previously, two denotations with types => T and ()T could not
be merged, only their types could be, but then the denotation
would no longer be a SymDenotation. We now treat the two types
as equivalent so that it will select the symbol in a subclass.
This fixes a problem where, once overrding pairs are made to
work (see following commit), in core/Types we get an error "overriding
final method "hashCode".
Fix OverridingPairs

OverridingPairs had several bugs which caused pairs to be lost, which caused
missing overrides checks. Fixing OverridingPairs revealed several test failures
(and a problem in Synthetics generation which was fixed in the last commit).
Tests that became negative are all moved into neg/overrides.scala, and the
original versions in pos were fixed.
Refactored OverridingPairs

to make it easier to understand.
Fine-tuning override errors for syntehtic companion objects

These may raise real errors, so we cannot exclude them from
overriding pairs a priori. But we can avoid reporting any
errors if other override errors were reported previously for
the same class.
Fixes for type argument handling.

(1) Type arguments now get a coordinate.
(2) They are labeled Override

(2) avoids having to special case TypeArgs in OverridingPairs.
Some fixes to override checking in RefChecks.

`override` was not recognized at all on types.
Merge pull request #223 from dotty-staging/fix/elimRepeatedTransformSym

Avoid forcing infos of some symbols in InfoTransforms
When printing uninstantiated type variables, include their bounds.
Try to avoid overconstraining when comparing and/or types

See comments in eitherIsSubType for an explanation what the
problem is. Some test cases are in subtyping.scala
Merge pull request #227 from dotty-staging/patmatch/productArity

Rename productArity in pattern matcher to prodArity
Moved pending tests that work into pos and neg.

One test (t2613) required lifting a hard recursion limit in findMember
(used for debug only, will be removed in the future). The same test
also requires -Yno-deep-subtypes to be reset, so it's in pos_special
instead of pos.
Fixes of reviewers comments.
Add option to optimize the JVM for short-runnning applications

Ideally, dotc should reuse a resident compiler and we should not fork sbt
for every task. Until this happens, this option is useful for
development. Fixes #222.

Usage:
$ sbt -DOshort=""
$ ./bin/dotc -Oshort foo.scala
Merge pull request #234 from smarter/try/jvm-tuning

Add option to optimize the JVM for short-runnning applications
Merge pull request #233 from dotty-staging/cleanup/tests

Moved pending tests that work into pos and neg.
Merge pull request #229 from dotty-staging/change/typevar-printing

When printing uninstantiated type variables, include their bounds.