Make agent attribute behave more like LWP::UserAgent

Setting the `agent` attribute to a string with a trailing space allows HTTP::Tiny to add the default agent string to the end.

Previously this only occurred on object creation, these patches will make it also happen when setting it via the `agent` accessor.

I also added a `_agent` method which generates the default `agent` string. ( LWP::UserAgent also has a method of this name ) This will also allow subclasses to more easily change the default `agent` string if they choose to do so.