[Issue #5] Initial implementation of improved receipt verification
Making Security framework optional
Treating status 21006 as success

Removing CargoBay error domain
The request should be a POST to iTunes verifyReceipt API end point instead of a GET.
Expands verify transaction interface to support password, needed for verifying auto-renewable subscription receipt.
Parameter encoding should be set to JSON for receipt verification client.
Handles exception message in receipt verification failure optionally to prevent crash when a failure does not give exception message. (e.g. 21007)
extendedValidation might be false and error will not be set. Follow more closely to to `ValidationController` in this aspect.
Adds receipt validation.
Implements `doTransactionDetailsMatchPurchaseInfo:withPurchaseInfo:`.

This version differs from Apple's implementation in that it checks for all optional cases except `requestData`.
The reason `requestData` is avoided is because this is a field Apple reserve for future uses and thus its behaviour is subject to change. Guarding against it will make the code less future proof.
A detail explanation is available as inline comments.
Specify code sections.
Differentiates between production and sandbox receipt verification base URL string.

Mark sandbox receipt verification base URL string as unused for now.
If transaction receipt is nil, validation fails.
Extends `verifyPurchase:` with error parameter (`verifyPurchase:error:`). Elevate the errors during parsing plist data upwards.
Remove unnecessary comments/commented codes.

This code was available in `VerificationController` because it is using a delegate-based system and need a centralise place to pass information.
As CargoBay is using block-based system. This requirement is non-existent.
Explains some of my thoughts about storing transaction IDs. Open for discussion.
Makes CBCheckReceiptSecurity optional too. (Although I have trouble getting optional portion to work. Apple seems to include it regardless of whether you add the Security.framework or not.)
Should validates the values against purchase info instead of transaction receipt.
Replace if else with switch for status control flow.
Handles status 21007 and 21008 by replacing `_receiptVerificationClient` and retrying.