Add source to UserAgent

I find it useful if the UA object remembers what was passed into it, so I added a source property to it.