Some URLs expect a User-Agent header.

Example (version 22.2.1.3767):
```sql
SELECT * FROM url('https://api.github.com/users/clickhouse','JSONAsString');
```
Results in:
```
Code: 86. DB::Exception: Received error from remote server /users/clickhouse. HTTP status code: 403 Forbidden, body: 
Request forbidden by administrative rules. Please make sure your request has a User-Agent header (http://developer.github.com/v3/#user-agent-required). Check https://developer.github.com for other possible causes.
: While executing URL. (RECEIVED_ERROR_FROM_REMOTE_IO_SERVER) (version 22.2.1.3767)
```

Maybe it's nice to always send a header along, something like `User-Agent: ClickHouse/22.2.1.3767` ?

/** Perform HTTP POST request and provide response to read.
  */
namespace ErrorCodes
{
    extern const int TOO_MANY_REDIRECTS;
    extern const int HTTP_RANGE_NOT_SATISFIABLE;
    extern const int BAD_ARGUMENTS;
    extern const int CANNOT_SEEK_THROUGH_FILE;
    extern const int SEEK_POSITION_OUT_OF_BOUND;
}
template <typename SessionPtr>
class UpdatableSessionBase
{
protected:
    SessionPtr session;
    UInt64 redirects { 0 };
    Poco::URI initial_uri;
    ConnectionTimeouts timeouts;
    UInt64 max_redirects;
public:
    virtual void buildNewSession(const Poco::URI & uri) = 0;
    explicit UpdatableSessionBase(const Poco::URI uri,
        const ConnectionTimeouts & timeouts_,
        UInt64 max_redirects_)
        : initial_uri { uri }
        , timeouts { timeouts_ }
        , max_redirects { max_redirects_ }
    {
    }
    SessionPtr getSession()