Rollup for mochitestification

A bunch of fixes here required for mochitestification. Most of them are related to switching from cuddlefish to the native loader for running tests.

Some comments:

nodeResolve has a different method signature to resolve. First it accepts more parameters but that is easily wrapped. It can also return undefined when resolve never can, is that intentional and should we fix it? I wallpapered over it in sdk/test/loader.

mochetestified tests don't install as an add-on we just load the modules bare from the file system so a few tests are moved to testaddons where we are really testing packaging behaviour.
I don't like using methods defined in `toolkit/loader` outside of that (causes weird circular deps in some cases where someone would include `sdk/test/loader` by itself or something, maybe not an issue here)

But anyways, could either change `override` to act like `util/object#extend` (multi args, handle empty values), but could just use

```
let { extend } = require("sdk/util/object");
options = extend(options {
  id: overrides.id || options.id,
  globals: extend(defaultGlobals, globals),
  modules: extend(options.modules, overrides.modules, { 'sdk/addon/window': addonWindow })
})
```