Refactor lookup of a commodity that is a currency for a specific account into general function gnc_account_or_default_currency().

git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/trunk@23055 57a11ea4-9604-0410-9ed3-97b8803252fd
Improve transaction currency lookup by using the new account_or_default currency getter.

Previously, this could result in transactions that have a non-currency as
txn commodity, which is what the multi-currency register tried to avoid hard.
Now by using account_or_default_currency, the currency choosing policy from
the register is available in the other places where new transactions are
created, hence we better use that here.

git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/trunk@23056 57a11ea4-9604-0410-9ed3-97b8803252fd
Register2: Improve commodity/currency handling: Try to always use account_or_default_currency lookup instead of code duplication.

The code for ensuring a commodity that is a currency was duplicated among
the file. This is now refactored into the reg_currency variable. Also, in
a non-currency register the currency is now taken from parent accounts or
the default currency, which matches the old register's policy but is different
from what register2 previously did.

git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/trunk@23057 57a11ea4-9604-0410-9ed3-97b8803252fd
Bug #669964: Fix txn creation that forgot to set a txn currency.

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