Queue calls drain if empty task list is pushed

Queue calls drain if empty list is pushed

Example:

    var q = async.queue( worker , ... )
    q.drain = function() { console.log('Drained!') }
    q.push([]);

Old functionality: The drain is not called
New functionality: With this change the drain is called after calling push with empty array.