SI-8672 Better end-of-sentence detection for Scaladoc

The first sentence of a Scaladoc comment is parsed as the summary.
However, this was breaking of the sentence at the first `.`, even
if that was immediately followed by another character.

This commit only considers a period followed by whitespace, EOL or
EOF as the end of a sentence.
Merge pull request #3824 from retronym/ticket/8672

SI-8672 Better end-of-sentence detection for Scaladoc
SI-8323 Erase constant types for better double-def checks

Historically, Constant Types in method signatures have not been
erased. Rather, this was done in the backend.

This state of affairs leads to wrong decisions when the erasure
phase makes decisions about whether a pair of methods will clash
in bytecode.

This commit changes `ErasureMap` to take the underlying type of a
constant type.

This change obviates the fix for SI-4753, dcc07bd9f.

I've added test to show that constants are still inlined.

I believe this will answer the question in the backend about why
existential types make it that far; they come from the underlying
of a constant type representing a class literal. I'll leave it to
Lukas to verify that the code in question is now dead and to remove
it in his backend work.