Enforce namespace unique constraints

This is the update to actually enable namespace support.

At the moment, I pass a namespace as a query parameter in order to support namespace scoping on the v1beta urls.  Once v1beta3 lands, I will modify to pass namespace in the path.  Note the client libraries were modified to make this easy to do, so should be a trivial change once ready.

I broke the commits into logical sections to improve readability.
As long as we agree with override on a particular request, then we get what we both want, and then its a manner of finding the best way to provide that override into the operation.  Can we evolve this in a subsequent PR and not hold up this support?  I know there are many things waiting on this feature making it in from our end, and it seems like this type of thing can get further discussion after the fact.