Refactor internal API for Services to match v1beta3

First commit is services (working unit and integration).
After thinking about this more, I'm firmly in favor of leaving ProxyPort in Spec rather than in Status, similar to PortalIP. And, similar to PortalIP, we should try to honor it if specified. Otherwise, it will default to 0 in most cases, or to the value of Port if createExternalLoadBalancer is true.