refs #82: consolidated user agent

This may be a terrible idea, but it feels warranted. The idea is to cut down on duplicate logic in the various classes that need to have access to the user agent string while also having a sensible default if not set by the user. 

**Needs testing.** @wsnook Feel free to take a crack if you're feeling adventurous, otherwise I'll get to it tomorrow. 
Very skeptical about this. Setting the expectation that it's gonna be fine to mix notifications and asynchronous callbacks just seems like an invitation for trouble. I would prefer to let the raster tile layers and offline map downloader poll the global configuration.