Implement first half of defer file cleanup/retry utility

It will currently delete any unused zero-length deferral file and try to
retrieve messages from unused nonzero-length deferral files, but apart
from reporting the number of messages retrieved it does not retry those
messages or otherwise modify those files.

Squashed commit of the following:

commit a9289e80756fd3ccb1104b6d462986599a9507c9
Author: Sharif Olorin <sio@tesser.org>
Date:   Thu Mar 20 10:04:24 2014 +1100

    Fix segfault on failure to stat

commit cfd759e053c8ebca58eaec6c5e9eb1dcbafd220d
Author: Sharif Olorin <sio@tesser.org>
Date:   Wed Mar 19 19:36:24 2014 +1100

    [wip] retry sends in deferral processor

commit 3fc52c018e1dd98a22831f7c0a675edc99a980d8
Author: Sharif Olorin <sio@tesser.org>
Date:   Wed Mar 19 17:50:05 2014 +1100

    Should actually shut down before dying

commit f20a62be9b3000377a4d78fd0074487fb4fa46b6
Author: Sharif Olorin <sio@tesser.org>
Date:   Wed Mar 19 17:47:49 2014 +1100

    Retrieve bursts from non-empty deferral files

commit eed00b769367f20ab52517bda6722c1c97fecad8
Author: Sharif Olorin <sio@tesser.org>
Date:   Wed Mar 19 17:24:00 2014 +1100

    Shutdown libmarquise poller

commit 32a725a25c1740b83f6fb566e2bcdab3644c0b7c
Author: Sharif Olorin <sio@tesser.org>
Date:   Wed Mar 19 17:06:02 2014 +1100

    Initialize poller thread

commit c7a6c66f94ce00f850b1afc9866a75d90c2836b9
Author: Sharif Olorin <sio@tesser.org>
Date:   Tue Mar 18 20:40:53 2014 +1100

    Clean up process_deferrals a bit

commit cfed20aeae5f8bfcc403231f4423fd5b352ec6b9
Author: Sharif Olorin <sio@tesser.org>
Date:   Tue Mar 18 20:25:29 2014 +1100

    [wip] utility to clean up/retry old deferral files