Change models

Most importantly, increases the importance of projects in our model hierarchy. Notes, documents, and topics are now explicitly "owned" by projects instead of just having a loose affiliation with them based on, i.e. users who have edited them.

This change resulted in many residual effects in views & supporting models. Because we have very specific requirements for authorization & permissions based on project membership, this also implements our own custom User model.