Close #496 Set travis git clone depth to 1
Fix #427 warn user about erasing new talk info

- Add function confirm_add, called on addButton clicked

- Add helper functions are_fields_enabled and unsaved_details_exist for
  use in confirm_add

- Refactor clear_talk_details_widget to include category

- Add docstring for unsaved_details_exist function
Fix #461 move youtube upload into new cli
- Remove src/youtube-uploader
- Refactor YoutubeFrontend to fit new cli
- Refactor YoutubeService to fit new cli workflow
- Add subparsers to cli.py
- Document argument parameters, update docstrings
- Check oauth2 token file exists before upload
- Use positional arguments in cli.py
- Cleanup frontend/youtube.py
- Make methods static where possible
Make Travis fail the build immediately in some cases

Travis will fail the build if:

  - flake8 doesn't exit with 0
  - unit tests don't pass
  - documentation fails to build
Fix QTimer messages on unittest completion

Resolves the messages that appear at the end of unittest run:
    QTimer can only be used with threads started with QThread

Signed-off-by: Thanh Ha <thanh.ha@alumni.carleton.ca>