The possibility to set custom headers for .upload() and .uploadFiles()

I needed to be able to set custom headers while uploading (both individual and multiple files). I've added the functionality without breaking the original API. This pull request contains the changes + some changes to the README to communicate the possibilities. 

**Multiple files:**
```javascript
var files = [
    { src: 'somefile.jpg', dest: '/images/somefile.jpg', headers: { 'x-amz-acl': 'public-read' } },
    { src: 'somefile.jpg', dest: '/images/somefile.jpg', headers: { 'x-amz-acl': 'public-read' } }
];

client.uploadFiles(files, function(err, res) {
    if(err) return console.log("Oh no!");
    console.log("Done.");
});
```

**Individual files:**
client.upload('somefile.jpg', '/images/somefile.jpg', { 'x-amz-acl': 'public-read' }, function(err, res) {
    if(err) return console.log("Oh no!");
    console.log("Done.");
});
```

I didn't bother with updating the tests for such a small change.