Fixed #21189: Cleaned up usage of bare except clauses.

Thanks to berkerpeksag for the report and to claudep
for the review.
Fixed #21150 -- select_related + annotate join promotion failure

Added tests for a .annotate().select_related() join promotion failure.
This happened to work on master but was currently untested.
Improved Query join promotion logic

There were multiple cases where join promotion was a bit too aggressive.
This resulted in using outer joins where not necessary.

Refs #21150.
Fixed #21161 -- Timezone-related tests on Windows.

Thanks Xelnor for the patch.
Simplified a test by using CapturedQueriesContext
Fixed #18414 -- qs.exists() for sliced distinct queries
Fixed #21174 -- transaction control in related manager methods
Improved error message while setting GeometryProxy