TypeErasure: replace isSemi by semiEraseVCs and simplify the code
TypeErasure: replace isSemi by semiEraseVCs and simplify the code

- isSemi is replaced by semiEraseVCs with a different meaning (but is
  still unimplemented):
  * If true, value classes are semi-erased to ErasedValueType
    (they will be fully erased in ElimErasedValueType which is not
    yet present in this commit).
  * If false, they are erased like normal classes.
- Fix the documentation of the TypeErasure class which was wrong.
- Remove intermediate functions scalaErasureFn, scalaSigFn, javaSigFn
  and semiErasureFn. It's clearer to just use erasureFn directly
  instead.
- Add an optional parameter semiEraseVCs to TypeErasure#erasure which
  will be used in Erasure#Typer when we need to disable semi-erasure.

sjrd/dotty,lampepfl/dotty,folone/dotty,yusuke2255/dotty,densh/dotty,dotty-staging/dotty,sjrd/dotty,sjrd/dotty,auvik/dotty,lampepfl/dotty,dotty-staging/dotty,sjrd/dotty,dotty-staging/dotty,folone/dotty,svalaskevicius/dotty,densh/dotty,dotty-staging/dotty,vsalvis/dotty,reactormonk/dotty,som-snytt/dotty,vsalvis/dotty,lampepfl/dotty,spetz911/dotty,som-snytt/dotty,som-snytt/dotty,angi2/dotty,spetz911/dotty,lampepfl/dotty,reactormonk/dotty,VladimirNik/dotty,lampepfl/dotty,yusuke2255/dotty,dotty-staging/dotty,auvik/dotty,som-snytt/dotty,angi2/dotty,sjrd/dotty,som-snytt/dotty,svalaskevicius/dotty,VladimirNik/dotty