Zero instances of Money are always equal, even for different currencies

Introduces `NullCurrency` and `Money::zero()`

- [ ] Documentation
- [ ] Cleanup