Mediainfo support

Adding MediaInfo for each EpisodeFile.
For a normal download Import the mediaInfo is retrieved during the import. But for existing files it's delayed and handled later on, hopefully async enough.

I rewrote a major part of the FileNameBuilder logic to give the token replacement code a bit more flexibility.
I still don't like how the multi-episode numbering logic is handled, but it will do for now.

Obviously I also added MediaInfo as naming token:
- Series.Title (unchanged)
- Series.CleanTitle (removes : . ( ) from the title)
- MediaInfo.Video (video codec only)
- MediaInfo.Audio (audio codec only)
- MediaInfo.Simple (video+audio codec, a-la scene)
- MediaInfo.Full (my own concoction that includes audio & subtitle languages)

@markus101, I don't think it's finished yet, but I would like your opinion. Please note that hereby migration 56 is reserved :)
Local harddrive, 1253 files, 2 minutes. so thats about 10 per sec. But that's in Debugger with full Trace on, so in reality it's probably a bit faster.
But this is only for Import Existing, because the download import already fetches mediainfo synchronous (which was crucial since we need the info for renaming)

I still don't know the true benefit of doing it async.
But months ago when we talked about it you mentioned that it would slow down import existing, so i tried to keep it async if possible.
If mediainfo is required to determine quality we can do a lazyload.

But I really didn't want to add a switch to enable or disable mediainfo, since that felt like complicating stuff needlessly. So keeping import existing performant is relevant.

But if you want I can do mediainfo on all imports.