Substitute q.js for jsdeferred.js, because jsDeferred is not a strict future/promise. It builds a chain of async operations, but its Deferred object does not have a value (fulfillment value or rejection reason).
busybird.js: reimplement bb.blockRepeat with q.js. in addition, it is renamed to bb.blockEach, because what it does is repeating on an array.
busybird.js: start writing StatusContainer class.