This was set up to just store the locale internally. None of the methods off of this object are provided directly to the instantiated object's methods except though the internal `locale` property. 

Essentially you could create a singe `Intl.MessageFormat` object and swap the locale and pattern before each format call. Ideally you wouldn't always want to do that, but it's built so you can. I didn't see the need in hard binding the the locale to the object. We can change this to `_locale` and `_pattern` to mark them as `protected`. 

The locale is only used internally in the `_normalizeCount` method, but is also passed to formatters so it can be used there. 

@caridy, I'm not certain where you got `message.fr` from, but the `pattern` that's stored that is used in the `format` method can be a string that is simply parsed, or a transpiled array containing strings and objects to be processed (ie a result of the yrb transpiler). 

So nothing is hard bound to the pattern or the locale.