Cache template objects for partials
Cache template objects for partials

The mustache manual shows partials being used like:

```
base.mustache:
<h2>Names</h2>
{{#names}}
  {{> user}}
{{/names}}

user.mustache:
<strong>{{name}}</strong>
```

When using partials in this way, the `user.mustache` partial is loaded
and compiled once for each iteration, even though the content is static.

Compiling a template is computationally expensive, especially for large
and complex partials.

This change caches a template object keyed by the partial string, after
indentation is applied. Using the same template object each time the
partial is used means that compilation only has to happen once.

For simple partials (such as the example from the manual, shown above)
there's a ~16x speed up. The gain does not increase much as the list
length grows.

For complex partials the speed up can be better than ~50, getting better
with longer lists.

mustache/mustache,michael-gabenna/mustache,evilstreak/mustache,evilstreak/mustache,wowteacher/mustache,thelazycamel/mustache,victormours/mustache