[widgets] Remove waiting from widgets.

* Widgets are now simple snapshots in time. They *should not* deal
  with changing state internally.
* It's no longer possible to use the widget-level presence
  API (.present?/.absent?).
* We now wait at the DSL level.
[widgets] Remove #has_no_widget?.

This is no longer necessary since has_widget? doesn't wait.