#501 - Prompt user to save/discard/cancel unsaved changes when switching from one talk to another in Talk Editor

Ultimately, I would like to have it set up so that, when the user has unsaved changes in a talk and clicks on a different talk from the tableview, a window comes up asking them if they want to save their changes, with the options "Save" (save changes and select the new talk), "Discard" (don't save changes, just select the new talk) and "Cancel" (don't save changes but don't select the new talk either).

I have not made any huge changes yet -- a lot of my time has been spent just understanding Qt and how all the methods interact with each other. I expect to make more progress this week. However, to start with, I have added a method called "click_talk" which mediates between tableView and talk_selected. I know it doesn't look very useful right now, but I believe that it will make things easier in the long run to have a method that acts only when the user clicks on the talk -- as it is, talk_selected is called both when the user clicks on a talk, and in the select_talk method.

ToDo:

- [x] Add QMessageBox with save/discard/cancel options
- [x] Add functionality to this QMessageBox (Will attach screenshot soon)
- [x] Ensure that NEW talk is selected after user selects "Save"
- [x] Change options in QMessageBox to "Yes", "No" and "Cancel"
- [x] Enable user to save changes to current talk before creating new talk (Perhaps this should be made a separate issue -- thoughts?
- [x] Prompt user to Continue Editing, Discard Changes, or Save Changes when closing Talk Window as well.

Screenshot of QMessageBox:

![screenshot from 2014-10-03 13 28 19](https://cloud.githubusercontent.com/assets/6202431/4512075/38ad7384-4b3c-11e4-9040-fb953294fd97.png)

Closes Issue #501 when done.
Since you're doing a lot of logging, I think you should write to the log here that unsaved changes exist. Otherwise it's confusing when you see logs like

> User selected row 0
   User selected row 1
   User selected row 0
   User chose to CANCEL