Fix findBuildDependencyInQueue

Previously this function didn't actually have a lot of effect.  If a
build A had a dependency B, Hydra would start B first.  But on the
next scan through the queue, it would start A anyway, because of the
"busy => 0" restriction.

Now the queue runner won't start a build if a dependency is already
running.  (This is not necessarily optimal, since the build may have
other dependencies that don't correspond to a build in the queue but
could run.  One day we'll start all Hydra builds in parallel...)

Also, for performance, use computeFSClosure instead of "nix-store
-qR".  And don't bother with topological sorting because it didn't
have an effect anyway since the database returns dependencies in
arbitrary order.
Drop unused "disabled" columns
If a build step fail, immediately fail all queued builds that depend on it

This prevents unnecessary work, but it's mostly a refactoring to
support combining notification emails.
Remove Twitter notification support

Turns out Twitter is not an ideal medium for sending build
notifications :-)