Eliminate withData on components

Helpers returning dynamically chosen templates shouldn't
set the data context inside the return value. Instead,
the data context should be computed in a separate helper.
Then the `{{> dynamicTemplate dataContext}}` pattern can
be used.

The reason is that if `withData` were to be used in
the return value from helpers, then there's no way to
do fine-grained reactive updates -- we'd have to
re-render the full template each time the dynamic
template is re-computed (even if the data context
hasn't changed at all, say).