read Nodes
Returns the node list from the server, or null if the request failed.
Null distinguishes a network or HTTP failure from a genuinely empty server (which returns an empty list with 200 OK). Callers that want the old "empty on failure" behaviour can do readNodes(host) ?: emptyList().