Fix reslice and data races in kubelet fake_docker_client

- Fix reslice in Pull() to remove the just returned error
- Fix data races found during the integration testing
- Remove one-liner helper method for better readability
Add unit tests for example syntax

Tests api/examples, examples, and any embedded json in readme.
Merge pull request #587 from VojtechVitek/data_race

Fix data race in kubelet fake_docker_client
Merge pull request #590 from smarterclayton/test_example_syntax

Add unit tests for example syntax
query minion's /healthz for sanity checking. Removing gcutil ssh to
VM, and check kubelet's status.
update github.com/fsouza/go-dockerclient
Merge pull request #589 from monnand/update-docker-client

update github.com/fsouza/go-dockerclient
Merge pull request #593 from dchen1107/cleanup

Query minion's /healthz for sanity checking.
Sync pods asynchronously in the Kubelet.

This makes two main changes:
- Runs syncPod in a separate Go routine (and enforces only one of those
  runs at a time).
- Uses the pod list to determine if a container should be running or
  should be killed (used to use the output of syncPod).

Since Docker pulls are synchronized by the Docker daemon we still block
on that, but pods can now be removed and prepared for starting without
blocking on long pulls.