SI-8323 Consider constant types in erasure's double-def checks

At the erasure phase, Constant Types in method signatures are not
erased to the underlying type. Rather, this is done in the backend.
I'm not quite sure why things are done this way.

However, when erasure makes decisions about whether a pair of
methods will clash in bytecode, we have to deconst. This commit
does this in two places: when detecting if a method type matches
another post erasure, and when detecting whether bridge methods
are needed.