Reimplementation of signals.

This fixes a major problem with setting signals from a coroutine---namely,
that it could lead to a memory corruption if both the handler and the lua
State are garbage collected.  So we keep a reference to both the routine and
the state.

Also, I don't bother with trying to keep the previous Lua hooks
intalled---it's too problematic and could lead to chaotic behavior.
Okay, let's add some tests.

Created when basically refactoring the signal code.