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
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.
Updated endpoint routes to match spec.
Updates to endpoint arguments, and some WIP implementation.
WIP Implementation for VIEW recording.
Updates recording and general configs.
Updates unimplemented enpdoints.
Fixes some issues with endpoints.
Added WIP unit tests for configuration api.