Apply Builder Pattern to WireCompiler.

The constructors on WireCompiler are hairy and have way too many parameters. This is causing multiple problems:
* It's not clear which argument maps to which parameter when instantiating WireCompiler instances.
* CheckStyle will fail as soon as another parameter is added (the limit is 10)
* There's no clear interface for invoking the compiler programmatically (i.e. https://github.com/square/wire/blob/master/wire-maven-plugin/src/main/java/com/squareup/wire/mojo/WireGenerateSourcesMojo.java#L93)

In my opinion, the builder pattern solves these issues.
While it doesn't *really* matter, this can be done with `Collections.addAll(this.sourceFilesNames, sourceFileNames)` to avoid the whole `List` wrapper which just ends up being iterated over anyway.