Cherry picked csv method due to conflicts
Quick fix because of nuke and pave
CreateCourse fixed button groups and added testoutput and test input
Merge pull request #214 from firethanatos/master

Added CSV generator (NEEDS TESTING!!!) and added a path to Writer
Merge pull request #223 from itpun/master

CreateCourse fixed button groups and added testoutput and test input
Updates to course creation page
Updates to activity creation/management
Added support for test directories (one)
Course creation can now have multiple TAs
Added due date to activities
Merge pull request #226 from Donnervoegel/graemsmth-master

Added due date to activities
Merge pull request #225 from itpun/master

Course creation can now have multiple TAs
Merged Graeme's commit
Fixed activity creation
Stop combo box disappearing on account deletion
Updates to course and account functionality

Added some work to Ian's TA box that should make it work (relatively)
well. TA list (should) now update properly based off of the entries in
the box Ian added for multiple TAs. Also changed some functionality of
accounts in relation to the database, so for example if a TA is deleted
all of their entries in the TA table will also be removed. Some of these
changes might not work perfectly, so if any errors arise in account
modification or working with courses, let me know.
Fixed popup window for previous commit
Added remaining sysadmin pages #228
Fixed #229, Fixed #164

Hopefully everything still connects properly because I can't test it
from home.
Test Suite Skeleton implemented

Also button from MarkingCode page should correctly navigate to the test
suite.

One thing I was not sure about was if the Activity object being passed
into MarkingCode was the specific activity pertaining to that student or
the activity in general.

If the activity is specifically pertaining to the student the ok_button
action event on MarkingCode will have to be updated to put this specific
value into the constructor for TestSuite.  As it stands right now this
constructor just takes the activity object that was passed into
MarkingCode page.