Add gearman

Merged with vaultaire-collector-nagios codebase.

Removed CollectorMonad, replaced all things with IO

gearman mode runs multiple workers defined by -w, each worker is single threaded
gearman-haskell run returns an error string on a disconnect, a better name for the box would be
errorBox. Whenever the main thread takes something from the box, a thread must have disconnected, so we reconnect. (big assumptions, but at the moment I feel it is ok, if we have logging, which I shall add ASAP)
something like:
forever $ do
    error <- takeMVar error
    log error
    setupConnection errorBox opts