add ccache to build
refactor repo structure to have stable git repositories in repos/ directory

due to the way jenkins tracks git repositories, we won't be able to
specify a repo for each build.  Instead, we specify only the
mesa_jenkins repo to jenkins, and the build step will update and pull
the necessary refs.
refactor "default" tag from build specification to be a "repos" tag.

Repositories are fixed, at most one per project, and they include all
remote references.
change mesa build to use repos and build_root directories

the mesa build.py was just assuming a checkout was available next to
mesa_jenkins.  Now that mesa_jenkins manages repositories, the build
must take its source from the repos/mesa subdirectory.
Provide branch checkout routine.

Refactor includes:
 - promotion of BranchSpecification to public class
 - conversion of _repos dictionary to RepoSet class
   - supports set-wise fetch