This change should have no user impact. It:
- Removes unnecessary `throws` annotations for methods that don't throw
- Uses `Currency.Code` instead of `String` in a few places
- Removes some comments I felt were obvious
- Changes some whitespace
I think these are useful on their own, but they'll also make an upcoming
change easier.