Using string slices instead of bytes.Buffer in Version.String()

There is no need to use a bytes buffer when string slices are efficient enough. This is especially true since version strings are guaranteed to be sufficiently small.