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.
Mainly for omitempty (although I recognize it could be json:",omit empty" with the field name omitted so it uses the default conversion). Also, we have to be explicit with YAML because its default strategy is to completely lowercase the field name, so it seemed like a good idea to be consistent.