Better error message

Ensures that the error raised contains the `from` and `to` currency codes.

Prior to this change, the error raised would not contain the from & to currency codes, eg:
`Exchange::NoRateError: No rates where found for  to 1.380024 at Sun Aug 01 00:00:00 +1200 2010`

This is because the method only raises an error when `from_code` and `to_code` are `nil`. This is an perfectly fine way to raise the error, but it also means that those `nil` values are getting used in the error message string. This commit supplies the original from & to codes as well, so they they may be used in the error message.

This is a fairly ugly and direct way to fix this issue, so feel free to take it or leave it -- but please do add the currency codes to the error message one way or another.