Split GeoNodeStatus representation from querying
Per https://gitlab.com/gitlab-org/gitlab-ee/merge_requests/3140#note_43269314
The log in the accessors in GeoNodeStatus should never be run on the primary.
The easiest way to do that is probably to turn GeoNodeStatus into a PORO that takes a hash, and have a separate class to run the queries and output a hash it can devour.
We can then restructure the surrounding code such that Geo::NodeStatusService can never inadvertently cause that code to be called.