ServiceHelper: isolate logging logic

Hopefully this makes the logging a bit more readable and DRY.
DefaultEventService: escalate priority

There was a nasty bug where the event handler methods of some services
(e.g., DefaultAppService) stopped being registered with the event
service correctly, because the EventService was not yet fully
initialized. By escalating the priority of the default event service
(and also making it easy for alternative event service implementations
to set themselves to a sufficiently high priority), we avoid the issue.

I looked into alternative approaches, such as having ServiceHelper
manually register the event handler methods in such cases, but
reorganizing the code to make that clean was deceptively tricky. I also
considered adding logic that hardcodes the highest-priority EventService
implementation at the top of the services list, but that would end up
being quite ugly as well. It is shorter and simpler to simply escalate
the natural priority of the DefaultEventService.
Ensure all service initialization is logged

By placing the LogService as the first dependency of the EventService
(which is typically initialized first), we ensure that no service
initialization logging messages are missed, at least in the common case.