reduce frequency of session locking and StreamingProgressEvents (#13155)
This change introduces throttling of streaming progress events. Before
a event was fired once a buffer was filled. However as the buffer is only
4kb in size, fast uploads would trigger massive amounts of events.
This change is backwards incompatible on a logical level. Before this
change, a listener would get contentLength/4kb events, while after this
change the amount is limited to one progress event per 500ms.