qt: Use fixed-point arithmetic in amount spinbox

Use our own fixed-point (Satoshi-based) subclass of the spinbox instead of QDoubleSpinBox. Fixes various issues and cleans up code

- Fixes issue #4500: Amount widget +/- has floating point rounding artifacts
- Amount box can now be emptied again, without clearing to 0

Also aligns the amount to the right, as in other places.
TODO: this likely doesn't have to go through QApplication anymore, can we just call QAbstractSpinBox::event?