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
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.
Adds decoding of option values, and some more tests.
Adds unit test stubs and PATCH endpoint impl.
Implements list/view/create/delete for profiles.
Implements list plugins in category.