Refactor min coverage

This is a refactor of the PatientPopulation.min_coverage method.

There is a chance that this pull request will break the build. Even though this PR adds tests and the code it touches is 100% covered, the implementation is smaller. This means that the overall test coverage for the app goes down.

When running this locally, I could get this to pass sometimes. Most of the time, simplecov reports 1822 / 2347 LOC (77.63%). Sometimes it reports 1821 / 2347 LOC (77.59%) and the build fails. I don't know if there is nondeterministic behavior in the way simplecov counts lines or if we have randomness in our test suite.