Optimize isSelfSuperCall

Avoid the Applied extractor altogether, as that eagerly
creates `argss` which we don't need and which is quite
expensive.
More Names optimization

Versions of startsWith / endsWith that don't convert
the String argument to a Name.
Optimize tailcall elimination

From the "if a tree falls" department: don't bother create a finely
distinguished error messages about why the transform is inapplicable
if the current context doesn't demand it.
Don't try to eliminate tail calls in constructors.