initial serial jobs/queueing implementation

a job can now be configured with 'serial: true', which will tell Winston to
never schedule a build while another is in progress.

builds can be queued up and they'll stay in 'pending' state until they can
run, in order. a build transitions to 'started' state as soon as a successful
request is made to Prole, which is a behavioral change from before, where it
would wait until it got the started callback from prole.

the new behavior makes more sense from an outside perspective; as soon as the
request to Prole happens the build has technically started doing something
observable (fetching sources).

existing databases must be wiped; build IDs are now a sorted set, and we don't
have a great way to run migrations yet.