Fix issue with conditional expressions

For conditionals we failed to setup the observer for both branches
as required. This lead to us only observing either the true or false
branch but not both.

Now we mark conditional (as well as || and &&) as dynamicDeps so the
dependencies gets reevaluated as needed.

Fixes #40