ConfigTool General tab update

Improved the overall layout of the General tab.
Added "Reset Settings" and "Help us translate"
buttons. Some refactoring to remove unnecessary
instance variables.
Squashed 'docs/source/_themes/' content from commit 21e875d

git-subtree-dir: docs/source/_themes
git-subtree-split: 21e875d3a53ce897089ad690d897252f6063349d
Merge commit '94c258077e4b0870baa1ffd3350cedd3d1dd7159' as 'docs/source/_themes'
Fix #571: Footer broken on RTD site
Remove stuff that's not needed for the theme
Update copyright

The copyright in the build configuration file shows in the default
footer.
Hide default footer in docs by hiding default copyright

The default footer only consists of the copyright statement, so we
can get rid of the footer by not showing the copyright.

Instead we show a custom footer thanks to @umcsdon.
Fix #501 Warn user about losing new talk info

When the user switches from one talk to another, exits the talk editor,
or creates a new talk when the currently selected talk has unsaved
changes, a window comes up warning the user that there are unsaved
changes. The options are "Save Changes", "Discard Changes", and
"Continue Editing".

Fix #501
Close #605
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
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.
Fix #628 Unload Input Source Problem

Now the user can load and unload video/audio input sources
and record without closing the program.

This bug was caused because the flag variables
self.record_audio and self.record_video are not cleared
after a cycle of recording ends. So the program will
try to unload the source even it has been unchecked.
This fix reset the variables by the end of recording
so it will not influence the next one.
Fix #638 Set "Record Region" after selecting region

- Automatically check the "Record Region" button after the user selects
  a region to record.
- Rename the "Set" button to "Select Region".
Fix #614 Add video scaling options

Freeseer now supports converting video signals from one display
resolution to another. Technically we already supported this, but there
were no scaling options so it wasn't very useful.

The following scaling options are now available when recording video:

- No scaling
- 240p (320x240)
- 360p (480x360)
- 480p (640x480)
- 720p (1280x720)
- 1080p (1920x1080)
Fix #153 Log and Error Notification System

Added a log window accessible through the help
menu. Added a widget to the Record status bar
that displays the latest high priority message
with a status icon to indicate the type of message.
Fix #476 Auto-detect language on fresh launch

Freeseer will now try to use the appropriate translation if it exists
for the user's system language. It does this by detecting the user's
locale and searching for a matching translation. The US English
translation will be used if no matching translation exists.
Expands ProfileManager and profile unit tests

Methods for deleting, creating, and listing
profiles. Also modifies get_profile by adding
an extra arg to specify whether a non-
existing profile should be auto-created.

Adds unit tests to test_profile.

Methods added:
- create
- list_profiles
- delete

Related to #632
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