Bugfix 105 - Migrate Requirement Storage to ID numbers

Tasks now store Requirements as ID numbers, rather than their titles. This should enable the user to create a task relating to a requirement, change the name of the requirement, and still have the task point to it properly.

I am fairly certain that there aren't any obvious bugs in my implementation. However, I did not check whether I broke any tests or whether there are CodePro flags. Please check for these things.

You will need to clear your database to test this change; the way Tasks are stored has changed.

I have chosen `-1` as the ID for a nonexistent Requirement.

It will be difficult to see what was changed in commit 90ff998. Just look at the changes as a whole as compared to `develop`.

@set15 @johnn134 @pluxsuwong