Problem: signal handling was broken

Ctrl-C handler wasn't being properly installed. This patch fixes
that.

Fixes #485.
Problem: zsys_handler_set was confusing

This method did confusing stuff, and allowing handler_fn to be
NULL seems senseless. I've simplified it so that it's more obvious
what it does.
Merge pull request #486 from hintjens/master

Problem: signal handling was broken