Set maxOperations to a sensible default

There aren't many sensible reasons why you'd want `unlimited` as the default option here. Unlimited will cause more issues than not being unlimited. Ultimately I ended up increasing my local `ulimit` to get around the file descriptor issue with it trying to use unlimited resources before digging into the code and realized there was already a semaphore to limit the number of concurrent requests.

This library should provide a sane default, and if a user's use case demands them using more than 20 concurrent, they can easily increase.