Avoid intermittent EM exceptions on shutdown.

I haven't investigated this super rigorously, but the gist seems to be that when
all the Bud instances in a process are shutdown but the EM event loop is left
running, EM can sometimes raise ConnectionNotBound exceptions (likely when
subsequent Bud-related events are delivered to EM but it doesn't know what to do
with them).

Fix this by arranging to stop the EM event loop once the last Bud instance in
the current process is shutdown.
Unbreak signal-handling unit tests

The previous coding was simply wrong (unclear to me how it could have ever
passed). The current behavior seems fine, with the exception that the child
process exits with status 1, whereas it should really exit with status 0. I
poked around to see why this is happening but couldn't find an easy fix; for
now, just assert the observed (but incorrect) behavior; we can fix this later.