Topic/modifier lockdown

I propose that we make a more concerted effort to keep things final/sealed; this PR does this across the board. It's easy enough to open things up later on, until then we can profit from better pattern match analysis, notification of non-sensical equality tests, and, last but not least, less to think about when reasoning about the code.

As a bonus, the exercise uncovered two compiler bugs: [SI-7171](https://issues.scala-lang.org/browse/SI-7171) and [SI-7172](https://issues.scala-lang.org/browse/SI-7172).

The parts that warrant closer review:

  - introduce `UntypedTreeMarker` in 4598e8c.
  - in the same commit, tree checking for `Try`, and ignorance of `UntypedTree`s in `TreeTransformer` and `TreeAccumulator`.
  - populate cache vars for `lastDenot` and `_typeParams`.
  - seal `Type`, and therefore move two type nodes from the unpickler to Types.scala

Review by @odersky, if you like we can chat about this on Tuesday.