SI-7360 Don't let a follow-up TypeError obscure the original error.

When supplementing a fatal error message with context (current
compilation unit, tree, phase, etcetera), we must be cautious to
not to trigger another error which will obscure the original one.

Currently, `supplementErrorMessage` does its working a try catch
that only catches `Exception`. But this fails to catch
CyclicReferenceError (<: TypeError <: Throwable), as was seen
in a recent mailing list post by Greg Meredith.

This commit extends the catch clause.
Merge pull request #2389 from retronym/ticket/7360

SI-7360 Don't let a follow-up TypeError obscure the original error.
Merge pull request #2383 from vigdorchik/ticket/si-6286

SI-6286 IllegalArgumentException handling specialized method.
SI-6775 Racy synchronization of specialized methods.

When the new specialized method is created that overrides a method
in a base class, cloneSymbol is called on a base method, rather than
on a non-specialized overrider.

This results in flags incorrectly (un)set on the clone, which include,
among others, SYNCHRONIZED snd FINAL.

To fix the problem, we don't forward to specializedOverload, but
rather clone overriding method directly.