interpolate deep properties

Previously you could only go one level deep for variable replacement, now you can go arbitrarily deep. So this kind of template is now supported:

```js
var template = '<span>{{ favourite.language }}</span>';
var data     = { favourite : { language : 'JavaScript' };
var render   = interpolate(template);

console.log(render(data)); // <span>JavaScript</span>
```