Create subclasses of ArgumentError to return in different circumstances.

This should allow users of this gem to rescue specific errors and customize
the error messages if needed. Since they're subclassed and the message
returned before hasn't changed, and since the tests still pass without
needing updating, this should be a non-breaking change for users.

At this point I'm not sure if this can be leveraged in money-rails, or would need 
to be leveraged directly in a rails app's code.