Improve exception handling during startup

The main goal was to prevent StartupException from leaking to
Application.start() and Daemon, as was already prevented in main().

UnsupportedPlatformException no longer has a default message, as it is
convention for non-arg exception constructor to not have a message and
so having the message will likely cause confusion when it is misused
accidentally. Coupled with the fact that it wasn't documented what the
default was (and thus, could change at any point), nobody could actually
use it.
6 files changed