Add "edit transform result in editor" option.

The purpose of this is to stop more fiddly commandline option and string
format modifiers creeping in. Instead you can just open it in vim or pipe it
through sed. "It" here being the result of formatting/expanding the source
strings with the tags from the relevant files, then pulling out the match
groups from the regex specified in dest from that.

I would like to be able to put a comment line at the **top** of the file showing
what the original source string was but now that I have gone to all the
trouble to do the pipe stuff I can't be bothered. Of course I could just save
everything to an internal buffer and and write to a file or pipe when the time
comes. That would be useful for catching errors from later on in batch lots
before you had made any changes too.

The command line handling is a bit iffy because I wanted to be able to be able
to provid just `-e` on its own to use the default editor or `-e "-sed s/..." or
whatever to use an alternate one. argparse is pretty annoying here though, I
fear that it tries to be compatible with getopt and to handle it how I realy
want I would have to pretty mush parse argv myself. The problem is that if,
say, `-e` is the only option then it ends up catching the first positional
argument (unless you use `--` of course). We can use some heuristics to see if
this is actually an executable but pretty much all of them can fail when
trying to be portable or flexible (extensions, excecutable bit, abspath,
PATH). If it gets too annoying I will change it so it only uses EDITOR.

Just using shlex.split() for the actual 'editor' command for now so you have
to escape spaces and whatnot if you are using sed.
Unicode regexs, yay!
Don't exit loop early when dry run renaming.
Don't print out newlines between records for so many cases.
editor: handle files with informational comments removed.
rename: better handle unicode.
Make "is this an editor" check make more sense.
Allow using abbreviations to match tags.

Valid abbreviations are un-ambiguous substrings from the start of a tag name.
Eg {t} could match {track} or {title}.

Only checked against present and not dynamically generated tags (p1, p2 etc).