Add skeletal client and api.AddKnownTypes method

I don't like this being public, because it exposes the details of RESTClient, which defeats the purpose of having a client interface.