[WIP] fixing incorrect field emit order

I noticed that if you set `autoFields` to true but not `autoFiles`, you get a `part` event before `field` event. So for example, if I upload these things in this order:

0. field named "foo"
0. file named "afile"

Then I should get a `field` event for "foo", and then a `part` event for "afile". Instead I get `part` event for "afile" then `field` event for "foo".

So far this pull request has a failing test case - now I'm going to try to fix it.
My mind is open to what you are suggesting, but let's talk through it a little bit first.

If this situation happens, and we do not throw an error, something else will go wrong, more subtle and more heinous than a direct crash with a stack trace. For example it might emit 'close' twice. That would be much more trouble for the user to debug than immediately knowing it is a multiparty bug and filing an issue.

Under no circumstances should this be called with `self.flushing < 0`. If this happens then multiparty is in an undefined state. Not throwing here is similar to `process.on('uncaughtException', ...);`

What's your suggested alternative? Delete it? Send it to `handleError()`?