Introduce PartnerAddress

Can be used for storing contact information for a partner, or
might be needed for determining tax.
Add two selector methods to get partner's addresses

Introduced get_primary_address and get_address_for_stockrecord. I opted
to implement rudimentary logic supporting only one PartnerAddress
instead of raising NotImplemented. I'm assuming that given the demand
for multiple partners scenario, it is more likely than not that a user
will need to store an address for a partner.
AbstractAddress.search_text and UserAddress.hash set to editable=False

I can't imagine a use case where those should be exposed in a UI.
Allow managing a partner's address from the dashboard

As Oscar is only shipping with support for one partner address by
default, it made sense to have it directly editable in the partner
manage view.
Hide review and voting buttons if user is not able to do so

Moved some business logic regarding reviews from the views to the model.
Refactor review forms, views, model

* Moved validation logic to model clean methods
* Use one ProductReviewForm instead of two
* Cleaned up the ReviewDetail view
Move review tests
Dedicated view for Voting on reviews
Turn a few methods on AbstractProductReview into properties
Make vote help text more meaningful

Previously, a horribly rated review would with 100 downvotes and 5
upvotes would show a helptext of "5 customers found this review useful"
Corrected now to show both the number of upvotes and total votes, e.g.
"5 out of 105 customers found this review useful"
Handle Django 1.4's use of kwargs in class-based views
Split cleaning behaviour into form

Methods like clean_title don't get called dynamically.  Have moved
cleaning logic to the form which seems a more natural place.

Introduce some new test folders.
Rename get_reviewer_name property
Rework review/vote validation

Use field validators and model clean methods instead of forms.

Include new methods for voting up and down.

Add more tests.
Switch style of form to assign fields to instance param
Rearrange partner management page

Put core forms (partner, address) at the top.  Remove the offset.
Adjust partner address handling

- Make get_primary_address a property
- Assign partner to address when creating a new one (fixes a bug)
- Only show success messages after a success
Ensure postcodes are present when a country requires one

This closes a validation hole around validating addresses.  If an
address form was submitted with a country but no postcode, this would
not raise a ValidationError which was wrong.  This change ensures that
countries that have a postcode regex ensure a postcode is entered.
Minor template fix

If offset is dropped, span6 should be used.
Handle rename of get_primary_address to primary_address

Tests should now pass.