Refactor internal API for Services to match v1beta3

First commit is services (working unit and integration).
I removed this ugly hack once you merged the Metadata refactor.