Make subscriptions handles reactively stop.

Although `handle.ready()` becomes false when the subscription is stopped, it doesn't do so reactively, 
which leads to some difficult to understand issues. My reasoning for why it should:

1. It just seems wrong that `handle.ready()` will now return `false`, but any computations that depend on `handle.ready()` aren't invalidated, and thus still "think" it's `true`.

2. There's a common use case this addresses when setting up handles in an autorun, like so:

```
var handle;
Deps.autorun(function() {
  handle = Meteor.subscribe('foo', Session.get('bar'));
});

// and somewhere else, most likely a helper
Deps.autorun(function() {
  if (handle.ready()) ...
});
```

The issue is that if the handle stops due to the computation invalidating, the `ready()`'s dependency never gets changed. So the second autorun doesn't know that it needs to re-check whether the handle is ready.

This can have a variety of consequences, but the most common is if `Session.get('bar')` changes before the first subscription goes ready, the second autorun will never re-run and it'll appear like the subscription *never* goes ready.