Remove generated java files in gradle clean task
Change generate() to take Reader for input and WriterFactory for output
Extract helper functions to StringUtil
Add StringUtilTest
Add Callback<Void> to asynchronous calls to endpoints without a return value
Add GeneratorTest