Fix 2i timeout messing with next request

When the webmachine process handling the 2i request times out, it was
returning an error message, but messages from the index FSM could still
arrive at this process later in a different context (in mochiweb)
causing it to send error messages to the client, which at that point
could be sending another request down the same connection. That
unrelated request was failing with a 400 "unexpected data" message.
This fix uses a big hammer: on a timeout in the wm process, it will try
to kill the index FSM and consume any messages sent from it before
returning a timeout error message to the client.
Replace busy wait with monitor check

My dumbass coded the kill + busy wait loop for no good reason. Setting
up a monitor, killing the process and waiting for the 'DOWN' message is
the obvious elegant Erlangy way to kill and wait for a process to die.
Merge pull request #644 from basho/eas-fix-wm-2i-timeout

Fix wm 2i timeout causing next request to fail