backport FeedableBodyGenerator from master
Merge pull request #734 from yanns/async-upload

backport FeedableBodyGenerator from master
[1.8.x] support ping/pong listener handling
Merge pull request #748 from elakito/work-1.8.x

[1.8.x] support ping/pong listener handling