Port of Deferred and Callbacks to Prototype (http://api.jquery.com/category/deferred-object/)