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

This is not done yet. However, I have been advised to make a pull request as soon as possible.

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?

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.
Without being given a model, the default QPersistentModelIndex acts like an index with row = -1 and column = -1. Is that a problem?

Beyond that, my understanding is a little cloudy.