SIP-23 Parse `Literal ['.type']` as `SimpleType`

This requires -Xexperimental in 2.11.x.

Update spec.

TODO: add tests

Notes:
 - `()` is not a literal
 - special-case SingletonTypeTree over Literal?
 - relax rules to allow `AnyVal`s in singleton types
 - allow constant-folding in types? (`"a".type + "b".type =:= "ab".type`?)
WIP: LiteralType: 42.type and friends

`LiteralType` is a `SingleType` with a literal for its path.
With an example: `1.type` is to `p.type`, as `1` is to `p`.

`l.type` is the most precise type for an expression known to evaluate to `l`.
Note that we cannot replace the expression by `l`, since it may have a side effect.

`ConstantType(c)` is the type of an expression that can be constant folded to `c`.

When an expressions should not be constant folded, the corresponding `LiteralType`
is created: `ConstantType(c).deconst == LiteralType(c)`
(this is where all `LiteralType`s originate, except for unpickling).

`typedLiteral` always infers a `ConstantType`, which is subsequently
`deconst`ed or `widen`ed where necessary (see `widenIfNecessary`).
In short, only `final val`s may have `ConstantType`s, and
`widen`ing is required to ensure that a path is stable and accessible (roughly speaking).

When checking subtyping, this invariant is useful: `LiteralType(c).widen == c.tpe`.