Reuse version in 16 Casks

It may very well be unnecessarily complex, in the long terms.  Hopefully it works well for the medium term.

My intention is to identify all the practical cases, and later collapse common ones into methods on version objects per #6347.  Something like `#{version.majorminor.compressed}` ought to be more maintainable for this example.

Also, a problem with `sub`/`gsub` is silent failure when the match fails.  Version objects could fail informatively.