Make subscriptions handles reactively stop.

Although `handle.ready()` became false when the subscription was stopped, it didn't do so reactively, 
which led to some difficult to understand issues.
Added test case for reactive handle argument changing.
Explicitly test for sub arguments changing before ready.
Ensure the sub reactively goes unready when removed.

Subscriptions are removed from 3 points - handle.stop, nosub message, and _unsubscribeAll. We need to handle all three cases similarly.
Removed redundant checks for Deps' existence.
Subs’ readiness should not invalidate if they stop when they aren’t ready.
Drop collections after test.

Only on the consistent id test, but that one is run repeatedly.

Written using cleanup functions; we might want to make this part
of tinytest in future.
Merge pull request #2202 from justinsb/cleanup_collections

Drop collections after test (WIP)
Add `UI._templateInstance()`
Merge branch 'templ-instance-from-helpers' into devel
history: a bit more explicit
Notice changes to npm-shrinkwrap.json

There were two separate issues here:

 - npm-shrinkwrap.json wasn't actually being used as part of the
   watchset/buildinfo, so changes to it might not cause the package to
   be considered for rebuilding

 - meteor-npm only compared top-level changes when deciding whether to
   update, not all changes

Fixes #1648
update sockjs to 0.3.9, websocket-driver to 0.3.4

The websocket-driver update includes our PR to relinquish some memory
faster. https://github.com/faye/websocket-driver-node/pull/6

The sockjs update mostly consists of aligning the version of
faye-websocket it uses internally with the version that we use for our
client. It also contains this Vary: Origin change:
 https://github.com/sockjs/sockjs-node/pull/130
Tweak error message for circular build-time deps
Remove spacebars-compiler -> spacebars test dependency.

This fixes a circular build-time dependency when building test slices.
Merge branch 'pr/2115' into devel