Possible fix for issue #49

Switches from using a standard dispatch queue with semaphore to using an NSOperationQueue with concurrency limitation.