Add a NewStringSet() function

Also beef up tests to cover len(ss).
Merge pull request #289 from thockin/cleanups

Add a NewStringSet() function
Add a link to the I/O talk on YouTube
Fix the link.
First cut at input validation for Kubelet

* Add some util functions for basic validation
* Spec api fields more tightly
* Break a dep from util -> api, so I can do the reverse
* Add functions to validate structures
* Call those functions when running manifests

This does not validate as it unmarshals YAML or JSON because I want to be able
to validate structures that come from other inputs without forcing them to be
YAML.

This does not handle all api structures - I am not familiar wnough with the
rest to spec them this tightly - I hope someone else can do that.

There are a number of open questions, marked "FIXME".  Please offer feedback
or opinions.
Fix comments on the WIP change.

* Use strings.Repeat()
Use util.StringSet in validation
Run gofmt
Set default values during validation

Iterate slices by index so we can set default values.  Do this for Port (the
only place where defaults are not the zero-values, so far).  Add a test case.