generate user agent string with version