fix($toObservable): dispose observable when scope is destroyed

If a $scope is destroyed angular automatically removes
all $watchers. So there is no point in still keeping
a reference.

Also cleaned up the tests a bit.