Spawns a background thread to check GitHub for a newer CLI version.
Returns a lazy handle — calling the handle blocks until the result is ready.
The check is skipped entirely if one ran within the last 24 hours.
Network failures are silently swallowed so they never interrupt normal usage.
Asks GitHub releases whether there is a newer version.
Returns Ok(Some(version_string)) if there is, Ok(None) if already current,
or Err if the network request failed or the response was unparseable.