Stop reloading boundary for very small reads

Previously if you only read 5 bytes at a time, the first 5 bytes of the
boundary would always be returned. The _current_data attribute was never
loaded for read sizes that small so the boundary was constantly readded to the
buffer and the first 5 bytes always returned.
Add multipart module to packages
Fix first example from #31
Re-factor loading of bytes

Close to fixing this nasty bug
Truncate earlier rather than later

- Ensure we write at the end of the buffer so we do not overwrite unread bytes
Simple hack to make this work for now
Merge remote-tracking branch 'origin/master'