Separate events subsystem

* Events subsystem merged from `server/events.go` and
  `utils/jsonmessagepublisher.go` and moved to `events/events.go`
* Only public interface for this subsystem is engine jobs
* There is two new engine jobs - `log_event` and `subscribers_count`
* There is auxiliary function `container.LogEvent` for logging events for
  containers
Sorry for confusion, there is still no "copy-on-write" strategy for now. But still small structures is preferred to pass by value. I've even slightly increased performance of `BroadcastWriter` by changing pointer to value.