State.Wait only reports exits and removal, so callers could not follow
a container through its status changes.
StatusChanges yields the current state and then every status change in
order, until the container is removed.
A consumer that falls too far behind gets an error instead of missing
changes.
Signed-off-by: Paweł Gronowski <pawel.gronowski@docker.com>