Implement basic fd-driven Event loop and Timer API

Yes, the engine has the base of an event loop now. I think it's rather
secular in relying on fds.

There is already some new stuff in the TODO concerning the Event API. It's
not carved in marble but basically it shouldn't be too wrong. I also glanced
at libevent but it didn't seem cool enough. (Where 'non-cool' is equal to
'portable'.)

Separate event loop and function postponing code. Each source file should at
most cope with one linked list.

Timers are now usable through Event but note the planned changes from the
TODO.

VERSION is now 0.2 and not mistakenly 0.32 anymore. It actually looked
appealing but was wrong. Increment API_VERSION because of Timer and Event
changes.
Explain loop_hook; condition SIGSEGV handler

Clearly outline the intended HOOK_LOOP semantics in include/hook.h: should
the loop_hook return non-zero, then it is assumed that the hook did
everything properly (which is, frankly speaking, BS because it can't or else
there would be no point in the central event loop at all) or wants some more
non-waiting time to do things, and the event loop restarts with calling the
loop_hook again. This will go into the Documentation/ once things stabilise.

Do not register a SIGSEGV handler when debugging because gdb can be used
much more conveniently and the handler screws up the backtrace, IIRC.

Silence gcc warning on possibly (well, not at all possible but gcc can't
know) uninitialised 'elm' in dequeue(). This made the thing slimmer, too.