Adding file uploads

This PR adds file uploads to the the node bindings. Here's a sample script using the `create` and `retrieve` methods on a file upload:

```node
var stripe = require('stripe')('SECRET_API_KEY');
var fs = require('fs');

var testFilename = "/home/wangjohn/stripe/stripe-node/test/resources/data/minimal.pdf";
var f = fs.readFileSync(testFilename);

stripe.fileUploads.create({
  purpose: 'dispute_evidence',
  file: {
    data: f,
    name: 'minimal.pdf',
    type: 'application/octet-stream'
  }
}, function(err, fileUpload) {
  if (err) {
    return console.log('ERROR:', err);
  }
  console.log(fileUpload);

  stripe.fileUploads.retrieve(fileUpload.id, function(err, fu) {
    if (err) {
      return console.log('ERROR:', err);
    }
    console.log(fu);
  });
});
```

The PR also adds a couple of things to the underlying `StripeResource` and `StripeMethod` which allow us to override the default headers, provide our own http data, and override the default host of `api.stripe.com`.

r? @michelle 
cc @jayeb, @amfeng 
Ya I wanted to keep the dependencies minimal. I couldn't find anything that does this explicitly (I had to copy and paste part of a helper method from here: https://github.com/natevw/fermata/blob/master/fermata.js#L315-L343). 

Most node libraries that do multipart/form-data actually send the request and don't have any interface for creating the http body to send -- which means we'd lose out on all of the generic handling we currently have for stripe responses and errors.