Add nine-flavored Builds support:

This completely revises the builds table (with one row per build now),
and adds a Data API.

This required minor changes to the way the process code interacts with
builds:
 * only insert a build row for the last buildrequest in a merged set
 * use fake slaveid and builderid values
 * use getBuilds(buildrequestid=..) instead of getBuildsForBuildRequest
 * alter the name of the 'brid' argument to addBuild
 * change calls to finishBuilds to use finishBuild instead

Note that the builds recorded in the database will have a different
number than those recorded in the status pickles.
look for 'yield defer.returnValue'
remove yields of defer.returnValue
fix pyflakes
Merge branch '9/builds' into nine