Allow non-linear prices

Oscar defaults implementation makes assumption that the price is computed as:

```
line_price = quantity * unit price
```

That is not always a case. For example, you might want to implement bulk prices:

 * 1-99 items... unit price of X
 * 100-999 items... unit price of Y

This could be easily implemented by adding additional methods to Price object:

 - `price_for_quantity(quantity)` (effective one)
 - `price_excl_tax_for_quantity(quantity)`
 - `price_incl_tax_for_quantity(quantity)`

Default implementation could reflect the current one, so it is backwards compatible.
Since this object is accessed via the `PurchaseInfo.price` property, it would be nicer to call this method `for_quantity` so is reads `PurchaseInfo.price.for_quantity(30)`.