ProtoRootSet
class ProtoRootSet
Aggregates inputs for a run of Wire. Instances of this are either proto sources (these emit code) or proto paths (these are only used to resolve references).
This uses a Gradle configuration for the library and project dependencies that we need Gradle to resolve. It uses a basic MutableList<String> for paths to files and .jar files.
This also keeps track of includes and excludes that apply only to the referenced file trees. A single run of Wire may use many ProtoRootSets, each with their own sets of includes and excludes.