Clean up order detail template

- Don't show discounts headers if no rows
Improve order detail dashboard view

- Rework view to use simpler methods
- Rename reloading method (not sure why, for readability I think)
- Use a form for changing the order status (we should be using forms for
  changing line stuff too - will look at that next)
- Generally clean up the view a little
More cleaning of order detail template

- Rename offers to discounts
- Use tabular display for payment information (to be consistent with
  other tabs)
- Show customer's email address when they checked out using guest
  checkout
Further improve order detail view

- Push saving order note logic into form (and out of the view)
- Hide order status form when there are no new options to choose
Use a line status cascade pipeline in sandbox

So we can see cascading line status changes when an order's status is
changed.
Use dynamic loading for forms on order detail page
Improve functional tests for order detail page

This change includes some tidying and organisational changes. There's
also a new test for adding order notes.
Correct naming for delivery date, and minor style fixes

* AFAIK, Oscar doesn't have functionality for delivery dates. Changed
  the wording to be consistent with the field name and wording in other
  templates.
* Line length fixes
* Refactored imports
ShippingAddressView small refactoring
Refactor analytics receivers to reduce query count

The old behaviour was to issue a get_or_create call, and then increase
a counter field and save the new instance. That will have caused 2 (or
even 3 on older Django versions) queries. The new behaviour now is to
use update() and only issue a create if no instances were affected.

Fixes #806
Remove deprecated debug toolbar settings

INTERCEPT_REDIRECTS throws a DeprecationWarning. I think the default
config for the debug toolbar is sane, so just removed it.
Remove raw SQL from oscar_calculate_scores

The Django ORM is perfectly capable. F() expressions FTW!

Unfortunately, this exposed a bug in the raw SQL, affecting both SQLite
and PostgreSQL. I'm somewhat confident that previously, only num_purchases
was divided by the total weight.

Will write docs later so I can link to this commit.

Issue #1033 is related.
Drop unneeded Product.score field

It just duplicates ProductRecord.score, makes ``oscar_calculate_scores``
slow and generally serves no useful purpose.

Also included docs for the previous changse to
``oscar_calculate_scores``.
Remove Product.related_products

Oscar already has child products to model tightly coupled products, and
"recommended products" to model products that are related (which we
expect to mostly be used for upselling). Product.related_products was a
third option that sat somewhere inbetween, and which I think will often
not be needed, has a mediocre interface in the dashboard and beyond that
no special treatment in the codebase. Furthermore, I see it being
confusing when trying to model a catalogue, and it's easily added back
if necessary.
Update v0.8 release notes re order detail changes
Merge pull request #1344 from dimka665/checkout_view_small_refactoring

ShippingAddressView small refactoring
Merge branch 'rework-order-detail-view'

Conflicts:
	docs/source/releases/v0.8.rst
Prune dead autodoc references
Simplify redirecting handling in some checkout views

Using the success_url attribute is common practice, makes it easier to
customise the URL and makes it more obvious that we only override
get_success_url() to attach a message.

Using the redirect shortcut instead of creating HttpResponseRedirects
also makes the code a bit cleaner.

This was brought to my attention because of #1343.

Also fixes the wrong class name for the bad request.