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
testing: added PrepareFailure which force a failure for some api calls
testing/server: fix WaitContainer

ops! x)
Merge branch 'events' of git://github.com/jhulten/go-dockerclient

Conflicts:
	testing/server.go
engine: fix go vet issues
event: add some docs and improve the channel handling
all: fix some golint warnings
Add signal to KillContainer

Comes from
Issue: https://github.com/dotcloud/docker/issues/4549
PR: https://github.com/dotcloud/docker/pull/4576
client: do not return invalid endpoint for tcp:// scheme

Fix #90.
added Tag to PullImageOptions

Signed-off-by: Francisco Souza <f@souza.cc>
authors: add Luca Clemente
travis: drop go 1.1.2
Support the API option to force removal of a container
Merge pull request #91 from jefferai/master

Support the API option to force removal of a container
authors: add Jeff Mitchel
authors: add Cezar Sa Epinola
Fix CommitContainer & Config

Fix CommitContainer to send the container configuration as the HTTP request body.

Fixes issue 78