Smallify WireCompiler, biggify its friends

@loganj @swankjesse @JakeWharton 

WireCompiler has gotten too big. This is a first pass at factoring out functionality. It's not perfect, but ideally I would like to do this in stages since it will be very hard to merge or rebase other changes while this is in progress.