Refactor version.{h,cpp}

Provides a more logical interface to the version number.