Separate MIME multipart creation and POST

This allows better testing (later) and reduces the API complexity.