make mocha browser tests all run with no console errors

There were some errors in the mocha browser tests that were preventing some tests from running. What looked like 100% tests passing was actually not. In this PR, I update many things to get rid of the console errors and make all mocha browser tests pass:

* Soop on WalletFactory was giving me a bunch of difficulties with .load, so I changed the WalletFactory interface so it no longer relies on .load. This does not consume more memory as you might think, since you only ever need one WalletFactory instance anyway.
* You must require('copay') in the browser, but require('../copay') in node. See also https://github.com/bitpay/copay/issues/680
* You must now run <code>grunt shell --target=dev</code> before running the mocha browser tests, because this properly includes soop, sinon and blanket. You can still run <code>grunt shell</code> for the publishable package, but not for tests.
* Some tests needed bigger timeouts in the browser vs. node.
* bitcore.bignum -> bitcore.Bignum

After all this, there is still one console error in Firefox (not Chrome) that seems to reside in bitcore, not Copay, so I haven't fixed that. If you run the test in Chrome, you get no console errors and all tests pass. In Firefox, you only get the one console error from bitcore, which is this:

<code>TypeError: mutating the [[Prototype]] of an object will cause your code to run very slowly; instead create the object with the correct initial [[Prototype]] value using Object.create</code>

I have, of course, run all the mocha tests, mocha browser tests, karma tests, and also did a sanity check on actually running Copay to make sure it works on this PR.

Agreed. You can make require('../copay') work in node and browsers by adding this to build.js

```
b.require('./copay', {
  expose: '../copay' 
});
```