There will only be a small set of consul build versions that a single consul
server will witness. Inside of metadata.IsConsulServer we use a very
expensive function in the hashicorp/go-version library to parse these into
read-only *version.Version structs all over Consul.
Memoize these in a package cache map. Likely the thing will only have like
2 keys in it ever over the life of the process.