Defer block params implementation to the `set` hook

```hbs
{{#each items as |item index|}}
  {{index}}: {{item.name}}
{{/each}}
```

now generates the follow template (note the `hooks.set` calls).

```js
(function() {
  var child0 = (function() {
    function build(dom) {
      var el0 = dom.createDocumentFragment();
      var el1 = dom.createTextNode("  ");
      dom.appendChild(el0, el1);
      var el1 = dom.createTextNode(": ");
      dom.appendChild(el0, el1);
      var el1 = dom.createTextNode("\n");
      dom.appendChild(el0, el1);
      return el0;
    }
    var cachedFragment;
    return function template(context, env, contextualElement, blockArguments) {
      var dom = env.dom, hooks = env.hooks;
      hooks.set(context, "item", blockArguments[0]);
      hooks.set(context, "index", blockArguments[1]);
      dom.detectNamespace(contextualElement);
      if (cachedFragment === undefined) {
        cachedFragment = build(dom);
      }
      var fragment = dom.cloneNode(cachedFragment, true);
      var morph0 = dom.createMorphAt(fragment,0,1,contextualElement);
      var morph1 = dom.createMorphAt(fragment,1,2,contextualElement);
      hooks.content(morph0, "index", context, [], {}, {morph:morph0}, env);
      hooks.content(morph1, "item.name", context, [], {}, {morph:morph1}, env);
      return fragment;
    };
  }())
  function build(dom) {
    var el0 = dom.createDocumentFragment();
    var el1 = dom.createTextNode("");
    dom.appendChild(el0, el1);
    var el1 = dom.createTextNode("");
    dom.appendChild(el0, el1);
    return el0;
  }
  var cachedFragment;
  return function template(context, env, contextualElement) {
    var dom = env.dom, hooks = env.hooks;
    dom.detectNamespace(contextualElement);
    if (cachedFragment === undefined) {
      cachedFragment = build(dom);
    }
    var fragment = dom.cloneNode(cachedFragment, true);
    dom.repairClonedNode(fragment,[0,1]);
    var morph0 = dom.createMorphAt(fragment,0,1,contextualElement);
    hooks.content(morph0, "each", context, ["items"], {}, {paramTypes:["id"],hashTypes:{},render:child0,morph:morph0,blockParams:2}, env);
    return fragment;
  };
}())
```