ListenToEvents: subscribe to events earlier

That way, when we create the dataset, we might receive some events in
relation to that operation.
ListenToEvents: subscribe via context injection

Whenever we inject a context anywhere, we now also subscribe to any
event handlers marked with @EventHandler. So let's use that rather than
requiring the event handler class to extend AbstractContextual.
ListenToEvents: tweak javadoc
ListenToEvents: report events using the LogService

This also demonstrates that context injection nets you service
parameters for free. And this commit updates the log message to print
the exact class of the event actually received, too.
ListenToEvents: subscribe to DatasetCreatedEvents

Since we immediately go ahead and create a dataset, let's listen for
that event to demonstrate things.