A nodejs Q inspired promise package