Small menu typo
Rename classes in preparation for a new class in a coming commit
More refactoring
With hundreds of new TLDs coming out, this is needed.

Generic matching instead of specific names.
Rebuilt auto hyperlink parser to make it smarter(?).

Notable changes:

* The return value of matches is now an array. Index 0 is the range in the scanned string. Index 1 is the URL from the scanned string. The URL returned can be different than the string that is matched by the range. This is because special URLs such as those missing a scheme will have the scheme (e.g. http://) prepended to make them valid. This is the value returned.
* Flimsy URL scheme matching is no longer used when calling “URLWithProperScheme:” to get a URL with prepended scheme when needed. This call instead now uses the internal parser to parse the given URL and prepend based on the actual parser status instead of traveling across an array of known schemes.
* The TLD expression introduced in c3b48752ed17f1c6cd7ec6ef929cde241c3f4ed2 has been updated to not count forward facing periods. Just the TLD itself.

The commit is considered unstable, but everything appears to work as expected. There should not be any change in behavior from previous versions. The difference is in how the data is actually handled. Hopefully more reliably now.
Don’t do double the work when we don’t have to.
Revert new TLD expression.

I can already see how many times it will receive false positives for filenames, so reverting.
As URLs with a scheme already support wildcard TLDs, I am not worried about future expansion.
The only thing limited are generic matches without a URL scheme.

Example: “http://textual.app/“ already is linkified but “textual.app” is not.
Provide support for more magnet links.
Set a name on print queue for help debugging a crash.
Honor isCancelled when needed and handle isReady differently.
Lock context before fetches
Check class exists before calling it.