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
Fix #655 Error when logging a non-string
Adds schema methods to options and Config files.
Fixes formatting for schema return values.
Adds tests for float and integer option schemas.
Adds properties to Config schema.
Adds validation tests for schemas.
Adds required to Config schema.
Fixes tests for option schemas.
Add 'default' values to option json schemas.
Fixes formatting.
Adds test_float file and moves option schema tests.
Separates 3rd party import.