Only try to evaluate observables in limit notification code. Update internal function names. Add plenty of comments. Use exact delay values in rate-limit tests.
Mark computed as dirty after notifying beforeChange.
Rename throttle and debounce methods to notifyAtFixedRate and notifyWhenChangesStop.