Issue #3: Implement custom URL handling on Windows and Linux

I believe custom URLs should work on all platforms, at least from the
app's perspective. The registry entries on Windows and the .desktop file
on Linux will need to be dealt with separately though.
Don't let app try to start with another instance running

Now the app will silently exit if it tries to start with another
instance running. The pre-existing instance will request focus from the
OS instead.