title: How do you properly promisify request?
body: <p>Bluebird promisifaction is a little magic, and <code>request</code> is quite a mess (it's a function which behaves as an object with methods).</p>
  
  <p>The specific scenario is quite simple: I have a request instance with cookies enabled, via a cookie jar (not using <code>request</code>'s global cookie handler). How can I effectively promisify it, and all of the methods it supports?</p>
  
  <p>Ideally, I'd like to be able to:</p>
  
  <ul>
  <li>call <code>request(url)</code> -> Promise</li>
  <li>call <code>request.getAsync(url)</code> -> Promise</li>
  <li>call <code>request.postAsync(url, {})</code> -> Promise</li>
  </ul>
  
  <p>It seems as though <code>Promise.promisifyAll(request)</code> is ineffective (as I'm getting "postAsync is not defined").</p>