Issue title: firefox content-script global object is used instead of window, leads to exceptions
 Issue body: Browserify uses 

`typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {}`

to detect `global` variable, and, in most cases that is fine, however, certain environments (content-script of firefox plugin for instance) has a read-only object as a `global` instead. This obviously results in errors and renders browserify useless. How can this be improved?

 Comments: 
 Comment 0: Used `opts.insertGlobalVars` to overwrite `global` variable and this solved the issue
{'source': 'GithubIssues', 'repo_name_with_owner': 'browserify/browserify', 'issue_id': 67891906, 'repo_stars': 14254.0}