Fixed empty string validation.

String validation is now done before the service thread starts (in
OnStart in the service which throws an exception and stops the service
from starting) and before the StatusDialog in the installer (will show
an error dialog instead of the StatusDialog).

Properly handles invalid/unsupported registrars in the installer and the
service.

Improved LogSingleton.