version: fix package and tests

Introduce `mustOsVersion`, which replaces `osVersion`, and panics if the version cannot be determined.

`osVersion` now returns an error value if it cannot determine the series.

Fix the tests so they actually _compile_ and _pass_ on OSX.
The idea was that we should keep the majority of the code in shared code, to make testing easier (obviously we'd need to mock out the command execution for this). Doesn't matter much at the moment, since there's no tests.