Add a few docstrings
Revert to passing in only needed information

Passing in the stockrecord isn't needed. I thought it'd be helpful for
implementing non-linear prices, but to do that, one will already have to
customise a strategy class and a pricing policy anyway.
Drop retail_price from pricing policy interface

Since pricing policies were implemented, the retail_price attribute was
a part of the interface, but not used. As the retail price is only ever
used for display purposes, it doesn't semantically belong into the
pricing policy, which is more concerned with business logic.

The retail price is still easily accessible as PurchaseInfo pass the
stockrecord, where it can be accessed in e.g. templates.
Undo changes to effective price

Getting the offers app to work with non-linear prices might turn out to
require a larger refactor. This is out-of-scope for now.

Note: I'm also not sure how it will affect vouchers.