Replaced ad-hoc caching of get_models with lru_cache.

Invalidate properly the cache whenever all_models or app_configs change.
This fixes some isolation issues in the test suite.
Invalidated get_models cache in a few more places.
Renamed AppCache to Apps.

Also renamed app_cache to apps and "app cache" to "app registry".

Deprecated AppCache.app_cache_ready() in favor of Apps.ready().
Fixed #21662 -- Kept parent reference in prepared geometry

Thanks Robert Scott for the report.
Dropped support for GEOS < 3.1
Added more spatial predicates for prepared geometries

GEOS 3.3 added crosses, disjoint, overlaps, touches and within
predicates on prepared geometries.
Documented the Apps and AppConfig APIs.
Updated a few doc paragraphs following the app-loading refactor.
Typo fix for exception message.
Merge pull request #2108 from jgastal/master

Typo fix for exception message.
Added a missing import and removed an unneeded import
Added release notes for app loading changes.
Copy-edited previous commit.

Thanks Tim for the review.