[V6] VM videos

Follow up to PR #16.

Create a VM screendump thread (necessary to encode VM videos) on the Machine() class level, as in opposition to taking care of it on other parts of the code, such as the virt-test approach. Also, include a Video Encoder, and encode videos upon VM termination.

Changes from v5:

Addressed @ruda's comments:
* Protected screendump call from socket errors, that might happen if the screendump interval is too short.
* Moved screendump thread termination before calling QMP method 'quit'.

Changes from v4:

* Fixed bugs and inconsistencies
* Rebased
* Added more options related to screendump thread and video generation to avocado CLI.

Changes from v3:

* Made screendumps and videos off by default.
* Encapsulate functionality to avocado-virt-video subpackage. This way people will be able to use it if they want, and not bother with it if they don't.
* Made command line toggles to enable them: --take-screendumps and --record-videos.

Changes from v2:

* Modernized is_ppm() function according to @ruda's comments
* Added parameters with namespace to control the behavior of the functionality, now it is possible to configure tests to disable screenshots and video encoding
* Changes to video quality: Screenshots are better and taken in intervals of 0.5 s, instead of 2 s. Now the screendump thread is silent, which makes logs cleaner
* The PR was entirely redone, it's cleaner and better organized. Problems I still couldn't figure out:
* The exact dependencies that we need to add to the avocado-virt RPM to make sure the plugin works.

Changes from v1:

* Problems with encoder resolved, it's all working code now.