Destroy modal panel in blur handlers

Fixes #275.
I found this extra local necessary because sometimes calling `Panel::destroy` causes a blur event on the dialog, which triggers a nested call to `close`. Calling `::destroy` twice seemed to be a problem.