Fix #521 Modifying a talk using the details view hides the save button

- Enable Save Button only when an input field is modified by calling function
  enable_save
- Disable Save Button on init, and when input fields are autofilled or
  cleared
- Allow Save Button to be used for updating existing talks and adding new ones
  by calling function add_or_update_talk
- Edit docstring for function unsaved_details_exist
- Add docstrings for update_talk and create_presentation
Fix #537 Translations do not work for RecordTool and ConfigTool

Calling self.app.installTranslator seems to allow the translations to go
through to the 3 apps.

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

Signed-off-by: Thanh Ha <thanh.ha@alumni.carleton.ca>
Update en_US translation file strings

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

Signed-off-by: Thanh Ha <thanh.ha@alumni.carleton.ca>
Switch to pytest as our test runner

http://pytest.org/ for more information. Old tests done in the
traditional unittest style will continue to function.
Revert "Close #496 Set travis git clone depth to 1"

The problem with using git clone depth 1 is that if the contributer
pushes multiple commits in short succession before Travis is able to
kick off a build. The build will fail due to being unable to find the
commit. This is because Travis checks out a branch and then checks out
the exact commit. So it is possible to get into a situation where the
latest branch is newer than the commit Travis is trying to build
against.

This reverts commit 217a887c2341ffa4bf12e7fc29bbf6335436ae5d.
Add *.egg/ directories created by pytest

Signed-off-by: Thanh Ha <thanh.ha@alumni.carleton.ca>
Moving manage.py to framework/plugins/
Renaming folder.
corrected some of the bad practices that were commented on
Starting code for reality check.
Making corrections specified in GitHub comments.
Written remaining skeleton code based on previous plugin.py file
Removed unnecessary __metaclass__ and clarified class names
Should've added this file long ago.
Removing exception from plugin.py
Made changes indicated by git comments
Importing new plugin.py instead of old.
Removing redundant parentheses