feat(producer): add ability to produce multiple values at once

- producers defined via #set may produce multiple values at once
  still sharing the same factory

  Syntax:

  $data.set(['a', 'b'], function() {
    // return an array [ aValue, bValue ]
    return [ 'A', 'B'];
  });