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.
If this is going to use the `pre_delete_sample` signal then the `pk_set` argument should be the sample IDs in the project being deleted. If you are going to send the project ID then change this to use a new `pre_delete_project` signal.