Event reactives

Fixes `observeEvent` semantics and adds new `eventReactive` function.

Also allows `observe()` to encounter validation errors without ending the session.