Move unit event generation into fleet

Big step towards #638 
There seems to be a double goroutine nesting here, since we call `go a.Heartbeat()` from server