vastly improved templating

- improved the core templating mechanism for robustness, dryness
- templating now supports disjointent inline_js(). ie: declare the opening and closing curly brackets for a for/if/other block in different [[ inline_js() ]] blocks or use improved [[ print() ]] syntax for explicit character level control.
- supports nested calls to render templates within templates with new [[ render() ]] syntax
- supports adding event listeners inside templates with new [[ addEvent() ]] syntax
- correctly binds delegated events declared within templates to that templates rootNode
- added tests
- moved more non-essential functions to extras.fin.js plugin