convert ExternalServiceStore to an interface
Created by: camdencheek
This converts ExternalServiceStore to an interface so it can be mocked
out. This is the last of the stores listed in
internal/database/mockstores.go
to be converted, so from here, we
should be able to start removing references to the global mocks.
This was the most tricky of the stores to convert, since it had public mutable state in the struct. The first commit addresses that, making the validator fields private so we don't need to expose them in the interface.