Close #469 Add GStreamer state tests

Add 3 test cases to test GStreamer states: record, pause, and stop

test_current_state_is_record(): checks that the current state is RECORD
test_current_state_is_pause(): checks that the current state is PAUSED
test_current_state_is_not_stop(): sets state to null, then checks that
current state is not STOP

Related #437
Fix #444 Separate recording logic from the concept of a talk/presentation

- Add metadata parameter to load_backend function in Multimedia
- Disable Record button and set tool tip when no presentations are available
- Prepare record_name and metadata in RecordingController and add
  extension to file name in Multimedia
- Split RecordingController load_backend function into two functions: one
  accepting a filename, one accepting a presentation
- Change RecordingController load_backend function to only return a filename
  or None, and log an error if the load fails
- Change RecordApp to call load_backend_with_presentation
- Change convenience commands to call load_backend functions from
  RecordingController