JCLOUDS-671: Modify AzureBlobUploadStrategy to use Iterable payload

Payload slicer has a method that returns an iterable of payloads that works on non-repeatable
InputStreams that was introduced to fix multi-part uploads in swift (JCLOUDS-356). This commit
applies the same method to fix multi-part uploads for azure blob store.

https://issues.apache.org/jira/browse/JCLOUDS-671

For a multipart upload to azure blob storage, the payload is uploaded as a number of blocks with a maximum size of 4mb. Before this change, AzureBlobUploadStrategy was responsible for calculating offsets into the stream and requesting 4mb at a time from the BasePayloadSlicer The BasePayloadSlicer was using the offset to skip bytes in the stream and this would fail for non-repeatable InputStreams.

JCLOUDS-365 introduced a new method to the BasePayloadSlicer that pulled in the responsibility of calculating offsets and reading chunks into a block payload and encapsulated it behind an PayloadIterator which returns a payload for each chunk. This pull request modifies the AzureBlobUploadStrategy to use this higher-level method and removes the code for calculating chunk sizes and offsets as the BasePayloadSlicer takes care of that now.