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.
Hmm - I see why you're doing this now. It's necessary to implement the `get_price` method. I'm starting to think that this restructuring might be difficult to work in the US where taxes are determined at the last stage of checkout and (normally) assigned straight onto the pricing policy directly - see https://github.com/tangentlabs/django-oscar/blob/master/sites/us/apps/tax.py#L26