Add method to round to nearest possible amount of cash (aka Swedish rounding)

This change introduces a new property "smallest_denomination" for each currency, which gives the smallest amount of money (in hard cash) possible for this currency.

This property is then used in a new method "round_to_nearest_cash_value" to round a given amount of money to the nearest value possible in hard cash.
Can we see the same tests with negative amounts?