Version 2, picking up on an idea of Adriaan.
Fixed typos
fixed typos
Sync with implementation

Adapted docs so that they reflect what has been implemented.
Merge pull request #135 from dotty-staging/docs/higher-kinded-v2

Docs/higher kinded v2
Short-circuit transformSingle

There is no need to recurse in tree if there are no transformations left.
Short-circuit TreeTransform.transform

No need to perform zero transformations.
Fix wrong period for creating nested ctx in TreeTransforms.

`owner` for nestedContext in `TreeTransforms` was assigned
using initial period of whole `TreeTransforms` block.
That is incorrect as denotation for this owner could have been
create by some phase in this block.
Phases in tests now also have valid periods.
Merge pull request #142 from DarkDimius/fix-transforms-period

Fix using of wrong period for creating nested ctx in TreeTransforms
Add cloneScope method and handle versioning of ClassInfo#decls

This is done to streamline changing class denotations in new phases
by adding to (or otherwise modifying) their decls scope.
Make SuperAccessorName and extractor.

Should do the same with other name-creator/name-test pairs.
Added MacroTransform as a transformer template for macro phases.
New utitility methods in tpd.

Added the following utility methods:

 - polyDefDef: Create a DefDef given a function that takes type and value parameters and yields a body.
 - appliedToTypeTrees: Apply function to type arguments ion a TypeApply if arguments are nonempty.
 - mkAsInstanceOf
 - ensureConforms: generate a cast if expression has non-conforming type.
ThisType trees have their class as a denotation

Added this case, so that .symbol on a ThisType returns the underlying class.
Error method for implementation restrictions
Improved printing of flags

(1) Make sure ModifierFlags is TermFlags and TypeFlags
(2) Shorten private <local> to private[this]; same with protected
(3) Print [this] for local symbols in RefinedPrinter
Added phase: SuperAccessors

Rewrote SuperAccessors (more to be done; see comments), and
added stuff here and there to make it work smoother.
Rename SignedType -> MethodicType

... for the common supertype of MethodType, PolyType, and ExprType.
Signed was confusing.
Fixed problem with installAfter

The problem is that when an installAfter completely replaces a previous denotation, a symbol or NamedType
might still hang on to that denotation in the cache. We need to enforce that we switch to the new denotation.
This is done by setting the replaced denotation's validFor field to Nowhere.