Add reactivity tests
reactive tests: count number of times observers are run
Add test for reactive evaluation order
Add tests for isolate()
Use lazy evaluation of reactive functions
Add ctx$.label to help with debugging

Shows the code that the context "belongs" to.
Add execCount
Try LIFO pendingInvalidates?
Failing overreactivity test
Don't call observers until flushReact()
Remove all pendingInvalidate
Remove onInvalidateHint

The recent changes to onInvalidate make it do almost exactly the same thing.
Clarify isolation test
Un-export execCount
Add back onInvalidate to Observer class
Fix bad calls to on.exit

I didn't realize on.exit replaces previous calls to on.exit by default.
Fix problem with circular dependencies

The first of the included tests did not pass without the changes to
Observable. The problem occurred when a function read a reactive value
and then wrote it. Any dependents on the function would not receive
any invalidations, then or ever after.

The first problem was that the dirty state was unilaterally set to FALSE
after the function finished executing, which might not be accurate if
the function's newly created was invalidated during its own execution.
Instead we set dirty state to FALSE before executing. But to prevent
reentrant calls from thinking the cached value can be used, we add
a .running field that is also consulted during getValue.

The second problem was that Observable$getValue didn't register the
dependent until after updateValue. That is a problem if updateValue
creates *and* invalidates a context before returning. So now we
register the dependent before calling updateValue.
Two new recursion/circularity tests
Merge branch 'lazy'