add string form, extend selector with EXISTS, new tests/some old tests use table-driven style

Based on discussion in https://github.com/GoogleCloudPlatform/kubernetes/pull/715. Some of the old tests were not converted to table-driven format since the code on which they are based will probably be removed in the near term. Future work includes: changing uses of old code in other parts of the code base to use newer version of selector, removing old selector code, removing tests of old selector code, and adding number ranges to selector values.
I agree it should not be !=, but I also don't like the excluding an operator.

I have seen ?? as an operator to test for existence of a value in FreeMarker.

We currently do not validation on labels from what I can gather, which means we have no way of actually reliably supporting more complex selector patterns on them.

Will file an issue.