Adding a User-Agent header for the SDK

Do we need this test to be exhaustive? A few test cases I don't see covered:
* app version without name
* device without OS
* OS without device

Also, naming nitpicks: appOnly() is really SDK only, and appAndDevice() is really app and app version. deviceOnly() is really device and OS.