MultipartEncoder: added callback support and bytes read counter

Added the support for a callback function and a counter that takes note of the number of bytes that have already been read, stopping as soon as the entire data has been read.
Useful for checking the progress and passing it to progress bars etc.
It would probably be better if there was a way to do this AFTER the chunk has been uploaded, but this is a start.