Merge branch 'master' into develop
Since signature changed on `route/set`, reflect here.
fix(hash) Align with signature changed on `route/set`
Don't redefine variables from arguments, this bugs the f*ck out in later FF.
fix(weave) avoid promise#settle from swallowing rejection.
Merge pull request #70 from troopjs/fix/weave-rejection

Fix silent fail of widget start and initialize.
fix(weave) make sure `unweave` call immediately following `weave` will dismiss the weaving.
v5.1.5
Refactor loom package.
Merge pull request #75 from troopjs/feature/loom_refactor

Refactor loom package.
Externalize dependencies.
Merge pull request #76 from troopjs/feature/externalize

Externalize dependencies.
Remove templating from tests.
Merge pull request #77 from troopjs/feature/remove-test-templating

Remove templating from tests.
fix(widget) make sure widget constructor always receives the wrapped jquery element
Updated widget args fix.
Actually, we should support any data type here.
Also check for NULL
Merge pull request #72 from troopjs/fix/widget-constructor

fix(widget) widget constructor function shall receive jQuery instance rather than DOM element as the first argument, this's primary for backcompat concern
Add `CONTEXT` to `args`