Use code contract for currency check

We used a custom assert method for checking that the currency
matches.  Now replaced by use of code contracts which is the way
all other checks are performed.