Allow publish function to return an array or set of cursors

Allow publish function to return an array or set of cursors to be able to publish dependent data sets, like:
```
  Meteor.publish('multi', function (num) {
    return [ Foo.find({ num: num }), Bar.find({ num: num }) ];
  });
```
or
```
  Meteor.publish('multi', function (num) {
    return {
      foo: Foo.find({ num: num }),
      bar: bar.find({ num: num })
    };
  });
```