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.
Could/Should this better be ``BitcoinUnits::BTC``?