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".
Added "View Log" option to help menu; Empty log window
Changed log window size; Window no longer modal
Added Log table view and model; Created custom handler to populate
the model. Added clear button functionality.
Improved LogHandler constructor, code readability, and added level check
Removed redundant code
Fixed code based on comments
Added latest high priority message to status bar.
Changed logical flow of log.
Added option to filter log based on level.
Reverted to old logical flow with multiple listeners.
Fixed copyright years
Removed "All" option; Items no longer editable; Replaced grid;
Made horizontal header unclickable; Hid vertical header
Added/improved docstrings. Don't ignore log messages based on level.
Fixed docstrings and naming
Full module name in log with different column sizes
Customized slider for level selection; Colored level labels
Switched to using permanent widget instead of status bar itsefl
Added new state icons
Updated resource file
Changed icons