separate CI tests and "user" tests

Something I discussed with @magjac, is that it would be nice to separate the pytest test cases into ones only intended for CI and ones intended to be run by both CI and developers. We want to test for the existence of e.g. mingle in CI to avoid building a release that does not include it, but it is not an error for the test suite to fail to find this binary when running in a developer's local checkout.

I'd like to factor out all the tests under tests/ and rtest/ that are only relevant for CI, and put them in ci/tests. This way users won't accidentally think they need to run them and will not be confused by spurious failures.