db: prevent duplicate jobs
Created by: asdine
When enqueueing a job we make sure to replace queued job with the new one if they are for the same couple project / external service id.
Note: We will probably need an index, I will add one in another PR. Index added here https://github.com/sourcegraph/sourcegraph/pull/36986
Related to #36450 (closed)
Test plan
Improved a unit test