Collapse the two transaction currency scrubbing functions into one and fix some bugs.
The most serious bug was that it would, in some cases, set the transaction's currency
to a non-currency commodity.  It also sometimes set the currency directly without calling
xaccTransSetCurrency which skipped a number of side effects.

git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/trunk@23387 57a11ea4-9604-0410-9ed3-97b8803252fd