multipart/form-data rejig

The block way was horrible XP. This way makes clearer code and allows us to support other content-types.