Refactor and fix logic in recording api

Refactored and fixed recording api logic.
Implemented a shelve object so changes can persist more reliably and
elminate the need for server teardown code.
API tests now use pytest fixtures to create a baseline for
tests instead of xunit style setup and teardown methods.
Refactored and fixed logic of test_server.py tests.
Fix #588 Refactor plugins to use Config framework

Each plugin class that saves configuration
settings to the plugin.conf file now has its own
CONFIG_CLASS that extends the Config class
from the freeseer.framework.config.core package

Plugin options are loaded and saved from/to file
via the plugin's Config class.

Changes the YAPSY ConfigurablePluginManager to
simple PluginManager.

Refactored plugins:
- Jackaudio
- PulseSrcAudio
- Multiaudio
- DesktopLinuxSrc
- Firewiresrc
- Usbsrc
- Videotestsrc
- Picture-in-Picture (pip)
- Videopassthrough
- Audiofeedback
- Ogg Icecast
- Ogg output
- Videopreview
- RTMP Stream
Fix #617 Windows Desktop Region Record

Fix a small bug of in Desktop plugin for Windows.
Windows can record a region of desktop correctly now.
Added "View Log" option to help menu; Empty log window
Changed log window size; Window no longer modal
Added Log table view and model; Created custom handler to populate
the model. Added clear button functionality.
Improved LogHandler constructor, code readability, and added level check
Removed redundant code
Fixed code based on comments
Added latest high priority message to status bar.
Changed logical flow of log.
Added option to filter log based on level.
Reverted to old logical flow with multiple listeners.
Fixed copyright years
Removed "All" option; Items no longer editable; Replaced grid;
Made horizontal header unclickable; Hid vertical header
Added/improved docstrings. Don't ignore log messages based on level.
Fixed docstrings and naming
Full module name in log with different column sizes
Customized slider for level selection; Colored level labels
Switched to using permanent widget instead of status bar itsefl