Add tests for new methods.
Fix signal handling to do work.

Use the syscall package to allow INT/TERM/KILL to be caught and
safely close down the consumer. I'm not certain this will wait until
client buffers are drained, but this works for now.