rename repo_status.py to repo_set.py

Originally this module was intended to provide mechanisms for checking
whether a build was up to date.  It now provided general repo set
functionality, including pulling new source and checking out branch
set.  The module was renamed to reflect this wider functionality.
Add BuildSpecification class.

BuildSpecification is the top-level class for providing functionality
based on the build_specification.xml.  This revision adds the
checkout() method, which switches all branches in the spec to the
provided "branch specification" name.
Added ProjectInvoke class

ProjectInvoke encapsulates all details required to invoke a project
build.  It provides (de)serialization functionality for both remote
storage and object comparison.

The intent is for a jenkins class to accept a ProjectInvoke instance
and send a corresponding build to a machine.
add DependencyGraph

DependencyGraph process the prerequisites of a target build, and
indicates which builds have no prerequisites.  DependencyGraph is
notified of completed builds, and provides a list of subsequent builds
which have become unblocked.

Also removed "prerequisites" option, since it was always confusing.  A
separate scheduler will be made to build recursively instead of on
jenkins.
break AutoBuilder into its own module

drm and mesa both use autoconf, so the AutoBuilder needs to be in a
shareable location.

This commit also creates a build.py for drm.
add Export functionality

When result_path is set, builders must copy their output from the
build_root to a directory that will be shared over nfs.  For now this
is accomplished with `cp -a`.  It may be necessary to select files
with globs in the future.

PKG_CONFIG settings were added to AutoBuilder, and were tested against
an m32 build.