Add first pass at having a monitor for the MultipartEncoder

- Updated version of @deuiore's idea
Relocate the Monitor and change the default size to -1
Test the encoder
Make MultipartEncoderMonitor part of the public API
Add an example and the examples directory
Add entry to HISTORY
Merge remote-tracking branch 'origin/encoder-monitor'
Fix doc-string