Access locals with `this` and extension variables for includes

`locals` is now bound to `this` so you can easily check for undefined variables (eg. `if(!this.name)` rather than `if(typeof name !== 'undefined')`). There is also now support for passing in variables to included templates.