THRIFT-447. java: Make an abstract base Client class so we can generate less code This patch introduces a handful of abstract, non-generated classes that allow us to generate much less code for service implementations.