Add support for spread operator and remove hardcoded variable references
Till now, a section of the compiled output had hardcoded variable names out, ctx.escape, ctx.reThrow and state. With this release we have removed them and the consumer of the API should define these as options.
Also added support for spread arguments