Add rate limiting

This pull request adds support for rejecting incoming connections if too many goroutines are active at once, and rate limits HTTP requests from origin IPs. `RateLimitedHandler` uses a token bucket implementation ported from [`node-restify`](https://github.com/mcavage/node-restify).
Oh, good point. I think part of the problem is that there are a few stacks out there that don't send KeepAlive. Granted, FIN isn't a guarantee either. I was thinking more along the line of socket keepalive, not TCP. Having a 3 min timeout I think is fine (honestly, we might want to trim this down so we reap idle connections faster, but that's something that we'd have to determine in the field.)