Enhance deployment list and watch APIs

Clean up and enhance the deployment list and watch APIs. Support field
selectors across all deployment list and watch interfaces. Re-order field
and label arguments to list and watch interfaces to match upstream.

Introduce enhanced selector testing support.
Yeah... I do spit out the scenario details on error. I really don't like table scenarios in in golang so far. Any suggestions on how to make them easier to write would be very welcome. I need the exhaustive coverage for this kind of test, but can't seem to find any good styles which are very easy to read. cc @pmorie