mark-yank-url: Generic url support

This is a rewrite of the url_matcher regexp to support generic URLs (i.e no need explicitly support "exotic" schemes like sftp, git etc). This branch also introduces "handlers", to be able to define different commands for different protocols (based on URL scheme).

In my humble opinion, the use of Regexp::Common::URI to handle URIs is flawed for this particular use case, in that it does not account for the "trailing character heuristic" and does not support HTTPS out of the box (you have to override to scheme regexp, as per the Regexp::Common::URI::HTTP documentation). The option to use Regexp::Common::URI is removed in this branch.

Please review carefully! I've only used it now for an hour or so and have yet to stumble upon really exotic corner cases :-).