Added else condition to have the callback passed to the "retrievePurchasesFor:productIDs withCallback:callback" method called every time. In the else branch nil is passed as the callback param, since we can't have the purchases dictionary
Callback check: if there's no callback don't call it
Added issue check in the notification handler: if an issue is already being downloaded or if the user is not entitled to download that specific issue the download doesn't start
Fix: refresh shelf after retrieving purchases

Due to async calls, shelf was being refreshed before data from PURCHASES_URL was retrieved, resulting in inconsistent UI (e.g. some issues might still have been marked as purchasable even though they were in fact purchased).

Fixes #1062.
Since opening a hpub could take some time and the unzip operation should work when the app is in background initialized a background task before starting to unzip the archive
Since we are working with archives updated the SSZipArchive lib to the latest version (0.2.5)
Fixed Info button crash when touched in Standalone mode.

Closes #1069
Merge remote-tracking branch 'origin/master' into ios7