Rewrite Money and simplify ICurrency interface

- get rid of Money::$decimals and $sign
- use math instead of string ops
- introduce Money::toInt() and toFloat()
- currency subunit is handled by ICurrency
Remove unnecessary cast to float