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.
Do we need to change this API to accept a rate rather than an amount? I seem to remember talking about this previously - I think this changes makes the `FixedPrice` class less flexible as it no longer works for the US where taxes aren't calculated in this way.