Images can be downloaded in multiple threads.  Therefore the call to self.failedURLs containsObject:url must be synchronized to avoid a collection mutation error.
Merge pull request #388 from cfis/synchronize_failed_urls

Synchronize self.failedURLs