Refactor model generalization

- less boilerplate in each model
- easier to iterate over all models of one type
Refactor model names

- cost -> purchase
- payment -> financing
Adjust default values
Refactor list handling into new selection service

This reduces duplicated code between purchases and financings.

Also adds the ability to delete from the list.
Add purchase date for being able to display dates

- display payment dates as preparation for diagrams
- track dates as preparation for extra repayments