Use LimitListener if a limit is specified

Go's net/http library creates a goroutine for every request which if an
application does not finish processing requests quickly enough, many
goroutines can be created allocation quite a bit of memory.  By using
the LimitListener we can limit the number of concurrent requests being
processed.
yea, i forgot to clean that up.. i've pushed an updated version