Stop passing around the locale

Number converters were passing around their own options locale in
order to get locale information.
Clarify private methods in NumberToCurrencyConverter

The `#currency` method was not pulling currency. It was pulling the
international options for format and negative format to be merged into
the default options.

Also, cache all the things...