Limit concurrent HTTP API send requests

We currently accept as many concurrent "send message" requests as we're given. This branch adds a limit to avoid overwhelming the rest of the system when a single client pushes a high volume of messages.
Could we just use ``len(self._waiters[key])`` instead of maintaining the ``concurrents`` counts? If feels like we do a lot of work to keep these two in sync.