Add signal to support additional foreign keys on Sample

This allows the delete-sample command to be extended, to support models with foreign keys pointing to Sample.
Reorder these lines:

```python
pre_delete_project.send(
    sender=Project, pk=project_id, cursor=cursor)

# Remove samples
cursor.execute('''
    DELETE FROM sample WHERE project_id = %s
''', [project_id])
```