Added Persistence to Projects list

Projects can now be saved and pulled from the database correctly.
Additionally, title and date are required to do so.
Bug fixes on save

Fixed a bug where saving the program more than once would insert
multiple entries of the same kind (could have 2 of the same item on the
blocked list, etc).

Also added uniqueness constraints and primary keys to the DB that should
have been there originally (whoops)