Of important note: If you want your callbacks to come on the main queue, you
cannot create an
sessionWithConfiguration:delegate:delegateQueue: and pass
[NSOperationQueue mainQueue] as the
delegateQueue argument. All requests
will silently fail, and never return if you do.
Instead you must continue to us
dispatch_async(dispatch_get_main_queue(), ...) or
[[NSOperationQueue mainQueue] addOperationWithBlock:...].