Fix partner user form regression

Caused by reworking of the user creation form.
Fix bug in retrieving HTTP_REFERER
Display email address in dashboard if missing name

Email address is more appropriate to display than Guest.

Fixes #740
Added deprecated decorator

It makes it easy to mark a method deprecated and is easy to look up
deprecated methods via grep (look for '@deprecated').
Return shipping address without saving

OrderPaymentMixin has a new method `get_shipping_address` which returns
shipping address without saving it. Useful as part of checkout process.
Moar unit tests for the UserAddress model

Also I moved the generate_hash fn up to the Address superclass as it's
possible that it might be used in other Address classes.
Handle deleted user address during checkout

It's possible that a user could select an address to ship to but then
delete it before checkout is complete.  This change raises an
UnableToPlaceOrder exception in such circumstances.
Adjust handling of looking up addresses by hash

Previous version was not filtering by user.
Ensure user addresses are unique per user

This change adds a uniqueness constraint on user addresses to prevent
duplicates.  A few changes follow:

- The user address forms in account and checkout are modified to take a
  user as a constructor arg so uniqueness can be checked.

- The assignment of a user when creating a new address has been moved
  into the form.
Remove UserAddressCreateView from checkout

It's not really needed as it doesn't make sense to simply add an address
to your addressbook as part of checkout.