Use STI instead of type for purchase_items

Using single-table inheritance(STI) allows us to define different models
for the different types of purchase items. Each model could have
a different way of computing the price.

Filtering by type is kept the same using `Model_Purchase_Item::type()`.

Breaking changes:
 - `purchase_items`.`type` column is removed from db schema
 - `purchase_items`.`model` column is added to db schema
 - `Model_Purchase_Item::compute_price()` uses `get_price()` to.
 - `Model_Purchase_Item_Product` is introduced. It extends `Model_Purchase_Item`
   and overrides `get_price()`.
 - New types of purchases items should be implemented using STI and creating new models.