Change ProductHeaderValue to be more sane

The member variable should be readonly. We were setting it outside a
ctor via a static method, but that's not the right approach. I fixed it.
Merge pull request #596 from octokit/haacked/code-improvements

Change ProductHeaderValue to be more sane