Handle Paypal missing payment status types.

The following payment status types are being added:
- Canceled_Reversal
- Refunded
- Reversed
- Voided

The payment_status field in PayPalStandardBase is being
modified. The max_length is now 17 to handle new types.
Corresponding migrations for ipn and pdt exist.

The following new IPN signals are being added:
- payment_was_refunded
- payment_was_reversed

The following new methods are being added to PayPalStandardBase:
- is_refund
- is_reversed

Added test for the new signals.
Ensure that _verify_postback passes through any flags set as the result of the postback verification to the PayPalPDTForm.

When a PDT trnsaction is flagged, the flags set (if any) are not passed to the form that is used to update the pdt object.
This commit fixes this issue.
Refactored the PDT view to separate the main PDT processing logic into its own function.

The PDT view has been refactored to allow other views (or any other piece of code) to process the PDT information received in a request. This allows special views that do more than just processs the PDT and display a template to handle PDT requests.
The original PDT view functionality is unchanged.
Fixed reference to non-existant get_hashdigest Django function.
Merge remote-tracking branch 'atul-bhouraskar/master'

Conflicts:
	paypal/standard/ipn/tests/test_ipn.py
Fixed imports to be correct for Django 1.4
Updated README to reflect new signals
Updated to run test suite on Django 1.4 or later.

All Django versions earlier than 1.4 are now unsupported, so django-paypal
should not worry about supporting them.
Whitespace fix