A more reliable method to get the global object

Fixes #258.

This uses `eval` via the `Function` constructor, which is awful, but I can't come up with a better method in strict mode. I could also do `(function () { return this; }())` in non-strict mode, but then I'd have to make the outer wrapper of the shim not be in strict mode.