Out of @yan12125's concern that the presumption that JWPlayer data as
an array representing multiple formats rather than a playlist might be
specific to IQM2, move this code from jwplatform.py to iqm2.py.
JWPlatformBase now reverts to throwing a TypeError if it gets an
array.
Now IQM2 redefines the _extract_jwplayer_data() method as well, but it
continues to leverage JWPlatformBase for _parse_jwplayer_data(), which
is the bulk of the work.
* If our parsed JSON ends up as a list, rather than a dict, then store
it in ['sources'] as that list, rather than trying to wrap it in an
array, which leads to type errors. (Such a list indicates multiple
file formats/sources, rather than a playlist.)
* Allow format labels like 'SD 480' and 'HD 720' in addition to '1080p'