Reduce queries needed to check if node is a primary or secondary Geo node

Merged Stan Hu requested to merge sh-fix-geo-node-cache into master

If the Geo check for secondary? failed, the RequestStore cache would always be set to false but the cache would not actually be used due to the semantics of the ||= operator. This led to dozens of SQL calls with:

SELECT  1 AS one FROM "geo_nodes" LIMIT 1

This commit fixes the caching to handle boolean values properly.

Closes #1644 (closed)