Replace factory with member function to get script parser

Replace factory object for retrieving a script parser for a given filetype
with a member function in the video source class which makes it easier
to add new script parsers for potential new video sources that
use their own scripting language
Remove clear() from generator

The clear() member function in the generator is unnecessary
since clearing the generator queue can be achieved
by stopping the generator.
Refactor the generator to produce without next() operations

This current version of the generator, once started, will produce
(grab) frames from the source and emit them as they're grabbed
until it runs out, is paused, or stopped.

It also won't emit a grabbed frame if the generator was paused or
stopped as it fetching it from the source, rather, it stores it
temporarily and when resumed, it will emit it. If it is stopped
or started (not resumed) it will discard it.

Refactoring also simplified the logic in mainwindow and it is
simpler to use in other cases as well knowing you only have to
worry about receiving.
Merge branch 'script_parser_from_video_source' into dev