Restart app redux

This PR is a continuation of #81 that fixes up a few things:

* The API on the client side is now simply `UpdateManager.RestartApp`
* We now do some trickery to close the current app *before* we launch the new one - this enables Single Instance Apps to use `RestartApp` without DoS'ing themselves
* We now take the EXE name instead of a full path - we do this because it Feels Bad from a security perspective to allow an open redirect, and it has the advantage of always launching the latest version (since this method will frequently be called after we run the updates and we're probably now the old version)

## TODO:

- [ ] Make sure it works