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.
Fixes of reviewers comments.
Check that overriding members refine the types of overridden ones.

Somehow this was lost in porting (or was this done somewhere else
in scalac?).
Merge pull request #228 from dotty-staging/fix/overriding

Fix/overriding