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

The changes included in this PR will decouple the backend recording logic (Multimedia class) from the Presentation class for improved modularity. This will especially help with #538 since, currently, an empty talk must be created even when recording straight to file.

- 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

This PR does NOT include unit tests.

Fixes issue #444 

Related proposal:
https://docs.google.com/document/d/1VdPLpdIgteMfr1l7TPIZQ1M5XUKcy7ffVWu41t5zvjk/edit#