Improves how background operations are handled.

All background operations are now queued to a single NSOperationQueue.
Previously the code was constructing separate NSOperationQueue instances
for each traversal. This made it difficult to debug background tasks
because there was an explosion of threads.

Switched the default handling of embedded resources on by default. In
earlier versions the default was to ignore embedded resources unless
the caller explicitly turned them on.  This seemed backwards.
Merge pull request #4209 from BennettSmith/master

Improves how background operations are handled.