Use objects instead of arrays to track computed dependencies.

Thanks to @coderenaissance and @farmdawgnation for their similar work.
Remove unused "hasDependency" and tweak internal func names
When updating disposalCandidates, use delete instead of updating to false.
If a computed evaluator throws an exception, dependencies are correct.
Merge pull request #1221 from knockout/dependency-tracking-using-ids

Use objects instead of arrays to track computed dependencies.
New observable rate-limiting implementation that limits notifications, which works for any subscribable (including observableArray).