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)
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.

Also adds unit tests to test_profile.

Methods added:
- create_profile
- list_profiles
- delete_profile
Edits docstrings.
Get throws exception if profile doesn't exist.

The exception is only thrown in the case where
create_if_needed=False.
Updates get unit tests to expect exceptions.
Updates docstrings, formatting, and unit tests.
Removes unnecessary assertion in test.
Fixes naming, try/catch, and comment.