Cleanup from scenarios.   * InitSession failure *should not* kick off other requests.   * 400 statuses on SetIdentity and UserCompletedAction *should not* be re-enqueued.   * RedeemRewards *should* add an init call if the SDK is not initialized.   * RedeemRewards *should not* be enqueued if it they're trying to redeem more credits than available.   * RedeemRewards *should* update local balance on successful completion.   * Logout *should not* send request to server when not initialized. Also, making getCreditHistory: just call straight to the most specific method rather than going through an additional redirection.
Cleanup from scenarios.
  * InitSession failure *should not* kick off other requests.
  * 400 statuses on SetIdentity and UserCompletedAction *should not* be re-enqueued.
  * RedeemRewards *should* add an init call if the SDK is not initialized.
  * RedeemRewards *should not* be enqueued if it they're trying to redeem more credits than available.
  * RedeemRewards *should* update local balance on successful completion.
  * Logout *should not* send request to server when not initialized.
Also, making getCreditHistory: just call straight to the most specific method rather than going through an additional redirection.

BranchMetrics/ios-branch-deep-linking,BranchMetrics/ios-branch-deep-linking,BranchMetrics/ios-branch-deep-linking,BranchMetrics/iOS-Deferred-Deep-Linking-SDK,BranchMetrics/ios-branch-deep-linking,BranchMetrics/iOS-Deferred-Deep-Linking-SDK