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
Adjust handling of payment event reference

Use empty string, not None.
Fix a few demo template bugs
Show phone number, delivery notes in order dashboard
Ensure email is always cleaned before authentication test
Show guest email in checkout preview
Extend order report to show guest email
i18n update

- Pull in latest changes from Transifex
- Generate messages
- Compile .mo files
Add staticfiles to list of required apps in docs

Spotted here: https://groups.google.com/forum/#!msg/django-oscar/539hyvFPNso/6pXa-M3cfhEJ
Show non-field errors in product image dashboard form

Inspiration: https://groups.google.com/forum/#!msg/django-oscar/g_Bl4upzjsk/XuoH38QVei8J