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.
Refactored and added tests to test_plugins module

- Refactored test_plugins to use pytest.
- Added FIXME comment for firewiresrc issue
- Created git issue to track FIXME status
- Added a plugin information cache fixture for test efficiency

Fix gh#642
Related to gh#619
Related to gh#484