Cleanup hyperlink code and APIify

More work could be done to simplify the `detector` strategy pattern, but that's now confined to the internal classes, so can be simplified any time.
Will do (same wording applies to the method above, `mkCompletion`). The idea is that there are no path-dependent types anymore, so there's no need for a compiler instance around.