Introduce Decimal subclass that warns when multiplied

The intention of this pull request is to allow non-linear prices, which
means prices shouldn't be multiplied naively anymore.
Raise DeprecationWarning when accessing old pricing policy attributes

No easier way to break the test suite of an ecommerce framework!
Introduce get_unit_price() for clarity

Updating the Oscar codebase to use get_price() will mostly mean using
unit prices. To make it clearer what is going on, this helper function
has been introduced and get_price() will only be used for calculating
quantities.
Trivial changes to update code base to new price interface

Little changes, lots of them!
Revert to costly method of recording a user's order for analytics

Django's F() expressions don't work with decimals; I'm assuming
DecimalFields are represented as strings internally and it would be
unsupported by the database backends.

Reverting to pre-84f520e9 fixes the problem. As orders are comparitively
rare, this is not a major issue.