Fix continuing issues with this being undefined/undefined context (#96)
Fix continuing issues with this being undefined/undefined context (#96)

* Rely on window explicitly.

See #88, #89, #92. This also reverts the behavior in #92.

We do this everywhere else, so we might as well do it here too. This
should solve the issue of undefined contexts when logging by not relying
on `this` being `window` in the factory builder.

I like this approach better because if `root` is always window anyway,
it's cleaner to call it that in the factory. `root` in the module
definition is part of the [UMD pattern](https://github.com/umdjs/umd),
and I'd like to keep it isolated.

* Update UMD to explicitly detect browser global in strict mode.

See https://github.com/umdjs/umd/commit/47e725735b854dfd93c1ca6fcebf1e018bd52606
and https://github.com/umdjs/umd/commit/1deb860078252f31ced62fa8e7694f8bbfa6d889

> In strict mode, `this` is no longer sufficient to detect the global
> object. This change adapts the detection of the global object for the
> case of exporting to the browser global object.

Related to #88, #89, #92, #94

honeybadger-io/honeybadger-js,honeybadger-io/honeybadger-js,honeybadger-io/honeybadger-js,honeybadger-io/honeybadger-js,honeybadger-io/honeybadger-js,honeybadger-io/honeybadger-js