ensure manager and manager->delegate are not NULL in ios payment backend

also it's important to NOT call finishTransaction if we're unable to
call onHasBeenPurchased() for the given product! it's okay if the delegate
it not set -- that's the will of the developer -- but in all other cases
something is wrong and we must ignore this transaction. it's the best behaviour
for the customer as apple will resend the transaction eventually.
Merge pull request #24 from michaelcontento/ios-payment-pointer-checks

[iOS] add a bunch of security checks to the payment backend