Replaced HAS_SPATIAL_DB by testing database feature

Refs #22632. This should be the base for using more database
features to exclude specific backends in GIS tests.
User projects aren't what I had in mind, but yes, you're correct as long as users aren't using the old test runner.

I was thinking of the [contributing docs on unit tests] (https://docs.djangoproject.com/en/dev/internals/contributing/writing-code/unit-tests/) in which we say, "A database with the alias other. The other database is used to establish that queries can be directed to different databases. As a result, this database can use any backend you want. *It doesn’t need to use the same backend as the default database.*"

Since we have no automating testing of running our tests with different database backends, I am not sure how well this works right now (and it's probably not something we need to consider for this change).