using [global.IntlMessageFormat] to be able to aggregate and wrap without loosing the scope for IntlMessageFormat

This PR will facilitate bundling `intl-messageformat.complete.js` with other libraries without having to do crazy stuff with the scope. What is doing is simply defining `global` in the scope of the `complete`, then using `var IntlMessageFormat = global.IntlMessageFormat;` to guarantee that we access the right object rather than assuming the scope will provide access to it, which is not the case in strict mode.