Fix #622 New Recording UI

Overall new look for the recording UI. Made buttons persistent
and media buttons with custom icons. Added option to leave
record-mode and auto-record mode. Auto-record feature
has been moved to the menu. Spacebar now pauses and
unpauses recording.
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
Added configuration api endpoint stubs.
Adds a configure method to controller.
Adds plugin type map.
Adds some WIP payloads for endpoints.
Cleans out unused imports.
Corrects formatting for dicts.