Fix couch_doc:abort_multi_part_stream/1

The code was trying to chew up any outstanding data on the wire to avoid
having a hard close on the client. This updates the logic to work with
our attachment splitting logic.

BugzId: 15562
Force db headers to disk after compaction

There's a race condition that can happen if we die just after compaction
has finished writing its last compaction header but before
couch_db_udpater has swapped out the files. If we resume the compaction
we hit an optimization in couch_db_updater:commit_data/2 that avoids
writing a header if it hasn't changed.

This is just a simple patch to force the db header to disk after
compaction has finished.

BugzId: 14936
Monitor the HTTP coordinator process

Because HTTP processes catch all errors they end up exiting normally.
The multipart parser process won't be killed because links don't fire
when a process exits normally.

This just adds a monitor for the coordinator and exits if it detects the
coordinator has died.

BugzId: 15562