Text highlighting module

This is mostly a direct translation from the old module, but it fixes a
bug where all CTCP's where intercepted and never treated properly, as
well as fixes some highlighting cases.

Still doesn't highlight properly when a highlighted word is in a line
with URLs.