(#92) - clean up multipart parsing

I don't know for sure if this actually solves #92, but it seems the most likely candidate, and anyway this is a more logical way of doing the same thing.

If this fixes the bug, it's because occasionally `'file'` events are triggered before `'field'` events. Haven't looked at the multiparty source to see if that's possible.