Enable Control-C to pause the debugger

This fixes #42.  Now pressing Control-C while the script is running enters the
debugger in the line that was run (i.e., it does a set_trace()).

Note that this only works if the script was invoked from `pudb` or `python -m
pudb`.  If PuDB was started with `import pudb; pudb.set_trace()`, this does
not work.  But not that even without this patch, Control-C kills Python
entirely in that case (as opposed to entering post-mortem mode).
Fix up some more of the interrupt framework

This (partially) fixes #31, and also improves work on #42.

Now, interrupting with Control-C works when the debugging is started with
set_trace().

The SIGINT handler is enabled via the public function
pudb.set_interrupt_handler.  If you want to be able to enter PuDB from within
your application, just call this function.  By default, it uses SIGINT (i.e.,
Control-C), but you can change it to use a different signal if that one
interferes.

There is still one major issue, which is that when you break in the middle of
an atomic operation, it goes to bdb. After pressing `n` several times you get
to your code, though.
Add DEFAULT_SIGNAL hook to let people disable use of SIGINT
Add documentation for set_interrupt_handler
Merge pull request #63 from asmeurer/signals

Start fixing issue #42 and hopefully #31.