gh-935

**not ready for merge**

Right now this takes care of generating the right output format - consuming it is another matter
Think I understand. The reason I ended up doing this was because so that there's one less permutation inside the init logic that comes later (see previous comment re the various different things 'template' can mean) - at init time, template could be string/function/object, but *not* an array. If we split out template and partials at extend time, then we have to add a bunch more logic to support that possibility as well. In both cases we're trying to achieve more consistency and less if/else! I think the solution probably involves going in a slightly different direction altogether.

(This is why I'd love to kill off inline partials - though I agree with you that they're useful and that we probably shouldn't.)