SI-5905 Clarify test case

The language feature options are discovered reflectively, but it
is nice to enforce that expected options are supplied.

Short of that, the code string includes a rowdy postfix operator.

It still does enforce that at least one option was discovered.
SI-8631 Treat `A with Sealed` as enumerable for pattern matching

Enumerate the subtypes of sealed parent types of refinement
types, and filter those that conform to the refinement type.

Such types can crop up easily when LUB-bing case classes which
add `Product with Serializable` to the mix.
Merge pull request #3777 from som-snytt/issue/5905-test

SI-5905 Clarify test case
Refactor `enumerateSubtypes`

  - reorder to make "unenumerable" the last case
  - reunite an orphaned comment with its loved ones.
SI-8611 Avoid accidental patmat unification with refinement types

In the enclosed test, t8611a.scala, the patterns `O.{A, B}` were
incorrect treated as equivelent by the combination of
`uniqueTpForTree` and `Const.uniqueTpForTree`.

`uniqueTpForTree` used `Type#narrow` to try to create a distinct
type for each new pattern tree it encountered. However, narrowing a
`RefinedType` does not create a distinct type as we are used to
when narrowing, e.g. a class type.

    // Type
    def narrow: Type =
      if (phase.erasedTypes) this
      else {
        val cowner = commonOwner(this)
        refinedType(this :: Nil, cowner, EmptyScope, cowner.pos).narrow
      }

    // CompoundType
    override def narrow: Type = typeSymbol.thisType

This commit creates a fresh existential type symbol rather than
trying to use `narrow`.

I've included a unit test to show the sublteties of narrowing
refinment types.
Remove now-redundant condition in sealedness checking

It arrived in c1f8dbc, but is no longer needed after user-defined
value classes were introduced in 2.10.0.
Merge pull request #3781 from retronym/topic/8611

SI-8611 Avoid accidental patmat unification with refinement types
Merge pull request #3797 from retronym/topic/exhaust-compound

SI-8631 Treat `A with Sealed` as enumerable for pattern matching
Merge branch '2.11.x' of https://github.com/mlbileschi/scala into mbileschi-updateStringLikeDocumentation