support listeners for events

Change adds two methods to client:

- AddEventListener adds a channel to receive *APIEvents
  If this is the first listener, event monitoring is started.
- RemoveEventListener causes a channel to no longer receive *APIEvents
  If this is the last listener, event monitoring is stopped.
correct logic error on disabling monitoring
fixed some race conditions
caught closed chanel
Merge branch 'events' of git://github.com/jhulten/go-dockerclient

Conflicts:
	testing/server.go
engine: fix go vet issues