fix 2 cases that resulted in assertion crashes

Fix a bug where exceeding the max field count would trigger
an assertion failure instead of throwing the 'error' event once.

Fix an assertion failure when the client aborts an invalid
request. We will still have 'error' events for aborted requests,
because there should be only 2 clear events for when we are done:
either 'close' will be emitted in which case everything went according
to plan, or 'error', in which the multipart request did not complete
successfully.

Unpipe the request when the request is aborted or an error occurs.

closes #19