code: @SuppressWarnings("unchecked")
  	public <T> T invokeAndReadResponse(String methodName, Object argument, Class<T> clazz, OutputStream output, InputStream input) throws Throwable {
  		return (T) invokeAndReadResponse(methodName, argument, Type.class.cast(clazz), output, input);
  	}
docs: Invokes the given method on the remote service
  passing the given arguments, a generated id and reads
  a response.
  
  @param methodName the method to invoke
  @param argument   the argument to pass to the method
  @param clazz      the expected return type
  @param output     the {@link OutputStream} to write to
  @param input      the {@link InputStream} to read from
  @param <T>        the expected return type
  @return the returned Object
  @throws Throwable on error
  @see #writeRequest(String, Object, OutputStream, String)