Add unique constraint to source identifier columns.
Add database_cleaner gem.
Handle duplicate source creation race condition with retry.

Closes #1, with the caveat of tests stubbing the AR boundary,
which is another issue.