Tweak quality parsing and interaction between series/quality/assume_quality plugins, fix #2748

This is to address http://flexget.com/ticket/2748, where a valid quality string that was part of a series name still gets detected as a quality.

Several things have been simplified here:
- Series parsing runs before quality plugin, as it finds a more specific match
- No longer need to pass in current detected quality to series parser
- assume_quality now runs later to make sure plugins that actually parse quality run first
- metainfo quality no longer parses quality from description (I guess this bit is not strictly necessary after the way I refactored things, but I never really liked that, sometimes quality field is very long and messy with other crap)
- Add some unit tests for above functionality and interaction, and remove tests to do with quality from description
Too wide exception catch, will be throwing keyboard errors as invalid qualities upwards :)