added recursive deletion hooks so a project delete -> its plates deleted -> their samples deleted