LinkHandler cleanup and refactor

The link handler grew into an unmaintainable mess over time, which made it
hard to extend and understand. This patch aims to separate processing for
different kinds of links into different, small handlers and handles all
dispatching in a single method. That should make it easy to add in new
handlers, for example for video.

Some details:
* moved redirect handling to a separate handler
* abstracted the target analysis and normalization into a method
* abstracted generic attribute setup and content extraction into a method
* removed dead code that did not seem to do anything any more
* unified content handling for interwiki and regular links
* implemented colon escapes for the various link types and rt them

Bug: 43173
Bug: 48387

TODO:
- Check that templated content etc still works correctly. There are no new
  test failures, but that might just mean that more tests in that area are
  needed. Simple cases seem to work though, so maybe we are fine. Round-trip
  testing will tell.
- Also check that new content serializes properly. This area also needs more
  tests.

Change-Id: If41e57a8dc710a7ef84356e45d21820a6f4cc070