Turned ProjectDB Update method into a wrapper for a function that
applies changes and then returns the changed object. The Update method
takes care of locking the database, and updating the value in the database.

Update monitor.go and project_resource.go with these changes, plus added
tracking changes to the monitor and resource. Now the user can get a list
of the changes they have made since their last sync.