Fix #654. Recording from USB Source Broken

Adds methods to generate valid default values for
plugins with multiple input sources.

Affected plugins:
- USB video source
- Firewire video source
- Pulse audio source
Fix #652 Show highest priority log message in status bar
Fix #655 Error when logging a non-string
Adds json schema methods to Option and Config

Config schema methods generate a json schemas based on
the config instance's options. Option schema methods
generate schemas based on the type of Option, its
default values, and whether its required or not.

Also adds schema unit tests for Config and Options,
and adds test_float unit test file.

Needed for #632
Fix #642 Add tests and refactor test_plugins

- Refactor test_plugins to use pytest
- Add new plugin tests
- Add FIXME comment for firewiresrc issue

Related to #619
Related to #484
Minor improvements to framework/test_plugins.py

:lipstick: Refactoring #642
Fixes error at startup for windows missing plugin

Moves get_default_device and get_default_source methods
out of affected plugin Config classes and into the
get_videoinput_bin or get_audioinput_bin methods, so
that no OS-dependent plugin code gets run at startup.

Fix #658
:green_heart: Fix spacing for inline comments
Fix #653 Dialog not hidden on desktop region selection
Fix #663 Selecting a desktop record region does not always work
Fix #650: Resetting configuration raises error when file do not exist
Fix #627 Clear text fields when removing a talk or removing all talks
Fix #664 Feedback when desktop record region selected
Skip tests related to RTMP plugin for Windows

The RTMP plugin is not included in GStreamer for Win32, so the test based on it will fail on Windows.
The workaround is to skip the RTMP test on Windows.
Updates to http errors, and validation

Changed HTTPError class to have more standard error messages, and
custom inner descriptions.

Decoupled JSON Schemas from validate module, now schemas are either
generated by config classes, or stored statically in the api blueprint.

Added JSON validation schemas to recording api Blueprint

Updated validation tests for validate.py changes, changed xunit setups
to pytest fixtures
Fixes #576 High/Low DPI Adapting

The Qt UI would change the size according to the logical DPI of the computer.
Only Windows and Linux have been tested. (Should also work on Mac but have not tested).
The unit test for the new file is also added.
:memo: Improve docstrings

Make them more readable and informative.
Also fix punctuation, spelling, and grammar mistakes.

Related to #640
Add database.py tests and refactoring

- Remove test methods that only check function return types

- Create resources folder for common test data like test rss feeds

- Fix database.py query bugs

- Add database folder for database related tests

- Refactor common database fixtures into the database conftest file

- Refactor comments in database.py

- Refactor queries in database.py to have better style and sanitization

- Add comments and examples of the presentation time stamps

- Remove unused functions from database.py

- Add httpretty mock tests for database.py

- Add a database schema upgrade test

- Add tests that check multiple scenarios of each method in database.py

- Replace string % operators with calls to format for nonlog string formatting

- Remove several try/finally statements and replaced them with 'with's

- Fix an exception logging statement which referred to an out of scope value

Related #484
Started working through the database PR feedback.
Committing some work from today (refactored several presentations into fixtures, need to give them better names, refactored helper function name, added logging, added more tests.)