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.
You could perform sanity checking in the builder's `build()` method instead.