Refactor ftintitle

Refactor the `ftintitle` plugin to move the extraction of the featured artist from the artist string into it's own function so that it can be tested.

This also fixes a bug that was in the original code that extracted the featured artist that would cause it to fail if the album artist was on the right side and the featured artist on the left side in the artist field. Also adds test cases to avoid this bug resurfacing.
Well, I was just trying to keep the code consistent with what was previously there and didn't want to pass loglevel to the function. The comment said that execution could not continue if the album artist was not present in the artist field, so I figured this is the perfect use for an Exception.

I'm OK with it just returning None here, or just raising the Exception. Returning None would make the code a bit cleaner and we could get rid of the custom Exception.

Do you think I should just have it return None then?