Add event creation library and implement in scheduler.

How about use `pkg/client/fake.go` or else write:

```go
func (t *testEventRecorder) ListEvents(label, field labels.Selector) (*api.EventList, error) {
  t.T.Errorf("Unexpected call to ListEvents")
}
func (t *testEventRecorder) GetEvent(id string) (*api.Event, error) {
   t.T.Errorf("Unexpected call to GetEvent")
}
func (t *testEventRecorder) WatchEvents(label, field labels.Selector, resourceVersion string) (watch.Interface, error) {
  t.T.Errorf("Unexpected call to WatchEvents")
}
```