Telemetry

@fractalcat @afcowie @christian-marie 

See also https://github.com/anchor/vaultaire-common/pull/23

Telemetry:

 * profiler thread associated with a worker (reader/writer/contents) daemon
 * read/write operations report their stats to the profiler thread via internal STM bounded queue
 * profiler aggregates stat reports (i.e. calculate the sum/mean/median) and publishes the results to broker
 * client subscribes to the broker for telemetric reports

Unrelated changes:

 * use Network.URI for broker strings
 * ``DaemonArgs`` sum type to avoid passing around shutdown signal + ceph data + something else

In general, reporting stats such as the time taken to handle a read request is a simple matter of wrapping the action: ``profileTime ReaderRequestLatency origin act``
Okay, I think we should stick to the style that most Hackage packages uses, then, it's usually either this:

```
module System.ZMQ4
  ( -- * Type Definitions
    Pair   (..)
  , Pub    (..)
  ) where
```

so 1 indent level, KR bracket, top-level section comments. I'll change what I see if we agree on this.