state-based parser for multi-valued set selector syntax

Continuation of the work done [here](https://github.com/GoogleCloudPlatform/kubernetes/pull/951). Whereas previous work expanded the struct and went from object to string, this goes from string to object.
Actually, we probably should validate label keys when parsing them out, in order to catch syntax errors earlier. Should add a ValidateLabel method to api/validation/validation.go and call it wherever we parse out a key here.