Adding in Proper User Agent Support

This PR adds in a better user agent (which complies with our spec), and also allows users to dynamically add to the user agent by setting a userAgent string in the options config.