Update tags for marshal/unmarshalling

Update tags for all structs that a user may want to marshal:
- add yaml tags everywhere
- update case to match Docker's format

Rename MaxRetry -> MaximumRetryCount for consistency with Docker.

This is needed to support Kubernetes and OpenShift, both of which use go-dockerclient. We currently use a modified copy of the Container & supporting structs with the fields' json and yaml tags explicitly listed. This is so marshalling/unmarshalling works for both json and yaml, and the casing of the field names matches the way that Docker returns them.

If I missed any structs, please let me know and I'll update this PR.
Why do you need to make these json tags explicit? Aren't them the default value for json marshalling?