handle destroying widgets in thunks

* fix airgap for hasWidgets so that it's set on the parent of thunks if
  needed
* handle thunks when identifying widgets to be destroyed
This is an interesting idea, but it means that we evaluate every thunk. We are supposed to be able to pass in the previous thunk to thunk.render so that we can simply return the previous vnode if the data for that thunk is the same. This will cause every new thunk to render a new subtree, which defeats the point of the thunk.