Daemon should support reload config

This change adds support for changing the limit configuration of a running sphinxd.
It does this by listening for the HUP signal, reloading the config file when
that happens, and changing the ratelimiter object.

We aren't worrying about pre-existing buckets that get affected when we reload,
they will expire out.

I also tested this manually with Apache Bench
I think that it'd be better to have all of the logic live in the `Daemon`.

You're right that we'd need to change the way we create the server. We'd probably need to make a new `http.Handler` that called out to `daemon.handler`, and call `ListenAndServe` with that. One way you could do that is by changing the whole `Daemon` to be an `http.Handler` itself by adding a `ServeHTTP` method:

```go
func (d *daemon) ServeHTTP(rw http.ResponseWriter, req *http.Request) {
  d.handler(rw, req)
}
```
Then the `Start` method just needs to call `ListenAndServe` with `d` instead of `d.handler`:
```go
func (d *daemon) Start() {
	log.Printf("Listening on %s", d.proxy.Listen)
	log.Fatal(http.ListenAndServe(d.proxy.Listen, d))
	return
}
```
Then, all requests are handled with `d.handler`, so if you change the handler associated with a `Daemon` I think it should "just work".

What do you think? Do you think a change like this is worth making?