decorators.py:
- add new decorator require_project_or_site_add_permission

forms.py:
- pop requests from kwargs in SampleForm __init__ & restrict site fields to those the requesting user has add  perms for

models.py:
- added SiteManager

views.py:
- in view_samples, restrict sites to those the user has read access
- in view_sites, use decorator @require_project_or_site_view_permission
- in add_site, use @permission_required, and don't auto-add site perms to the creating user, they already had project wide perms
- in edit_site, use @permission_required
- in add_sample, create SampleForm with request arg

view_site.html:
- add project_id arg to edit site link

view_project_sites.html:
- add perm checks for adding and editing a site