pass in extra arguments to time.format.multi predicate functions

To be able to do something like this:

```javascript
var format = d3.format.multi([
    ['%Y',         function(d, resolution) { return resolution === 'year'; }],
    ['%b, %Y',     function(d, resolution) { return resolution === 'month'; }],
    ['%-d %b, %Y', function()              { return true; }]
]);
format(date, 'month');
```

The performance and file size impact (+ 19 chars when minified) is minimal and it's 100% backwards compatible.