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
WIP preliminary docs, impl for the slave rtype

** confusion over the general idea of a slave, vs. a slave on a
   particular master.  Is masterid part of the message?  Part of the
   slave object?  Or do we add a way to enumerate the slaves on a master
   and the masters for a slave?
preliminary docs for the log rtype
preliminary docs for the logchunk rtype
add an 'identifier' type
Add a step resource type and DB table