Restart apps that died due to errors

See the commit comments.

Also see [App Restart](https://github.com/eugeneia/snabbswitch/wiki/App-Restarts) for prior thoughts.
But when we call apps, we call them protected using `with_restart`.