Add RestartPolicy to Pod and PodTemplate

This is the first PR to add RestartPolicy to Pod. Next PRs will hook policy with kubelets. 
StringSet saves a bunch of weird struct{} typing-- ```x["mystring"] = struct{}{}``` looks really weird. The go map interface is awkward if all you care about are the keys. I don't think the analogy holds: StringSet has fewer features than a map, but errorList has exactly the same feature set as []error.

I object to errorList's Append because go already has exactly that functionality. Are we going to make ```type xList []x``` types for all things we might put in a list and add an Append method? That sounds like a lot of work. Consistency demands that we do this for all types or no types.

The thing that would be nice from the errorList type is if it defined an ```Error() string``` method, which would let one pass an errorList as an error. Then everyone could stop passing ```[]error``` as a return, which seems strange to me.