Commit 27. Major update. Full support for binding {^{if}} {^{for}} {{else}}

IMPORTANT BREAKING CHANGE: With these changes, {{for}} does not
 bind to observable arrays by default. The data-binding for {{for}} is now
 opt-in just as with all other tags.

1: Add a {^{ to any tag, to data-bind.
 This applies to {^{if, {^{for and {^{myTag for any custom tag.

2: {^{for myArray}} will now bind to array change (insert, remove...) and
 to property change (swap the array for a different one). See issue #83.
 Also see http://borismoore.github.com/jsviews/test/test-pages/for-else.html
 for an advanced interactive example of {^{for ...}}...{{else}}...
 data-binding.

3: Data-bound {^{if ...}}... {{else...}}...{{else}}...{{/if}} is now
 supported. See http://borismoore.github.com/jsviews/demos/tag-controls/tree-control_editable.html
 for an interactive example of {^{if}}...{{else}}...{{/if}} data-binding.

4: All tags now support one or more {{else}} tags
 - not only {{if ...}}...{{else ...}}...{{else}}...{{/if}}
 - but also {{for ...}}...{{else ...}}...{{else}}...{{/for}}
 - or {{myTag ...}}...{{else ...}}...{{else}}...{{/myTag}}.

 The {{else}} tag(s) will in effect split the content of the
 {{myTag}}...{{/myTag}} block into multiple blocks.

 Each tag implementation can define specific behavior for the
 {{else}} blocks.

 Example: Add an {{else}} to {{for}}...{{/for}} to provide an
 'if array is empty' section.

 - See http://borismoore.github.com/jsviews/test/test-pages/for-else.html
 for an advanced interactive example of {^{for ...}}...{{else}}...
 - See the updated http://borismoore.github.com/jsviews/demos/tag-controls/tabs-control.html
 Sample for an interactive example of {^{myTag}}...{{else}}...{{/myTag}}
 - See http://borismoore.github.com/jsviews/demos/tag-controls/tree-control_editable.html
 for an interactive example of {^{if}}...{{else}}...{{/if}}

5: There is now an {{include tmpl=.../}} tag, for simple template
 composition, without navigation through data, or iteration over arrays.
 See issue #155

6: There is now a new ‘wrapped template’ feature for providing both
 a template  and block content, so that the template can then ‘wrap’
 the content.
 See http://borismoore.github.com/jsrender/demos/step-by-step/06_template-composition.html

7: data-link="name" or data-link="{:name}" now bind to innerText, by
 default, not to innerHTML, so the content is automatically HTML
 encoded.
 Use data-link="html{:name}" to insert as innerHTML
 See issue #146

8: visible{:expr} no longer requires the expr to return a Boolean value.
 Any truey or falsey value will behave as expected.
 See http://borismoore.github.com/jsviews/demos/step-by-step/04_form-elements.html.

9: disabled{:expr} no longer requires the expr to return a string:
 "disabled". Any truey or falsey value will behave as expected.
 See http://borismoore.github.com/jsviews/demos/features/observability/observing-paths.html.

Other breaking changes:

10: Custom tag APIs have changed for better support of {{else}} blocks,
 and better navigation through the tag hierarchy. For example, there is
 now a tag.parent property which points to the parent non-flow tag.
 Declarative ~tags is now ~parentTags, and includes all ancestor
 (non-flow)tags. See tree-control_editable.html example.

11: The tag.renderContent() method has been replaced by
 tag.tagCtx.render() on each tagCtx.
 See http://borismoore.github.com/jsrender/demos/step-by-step/08_custom-tags.html.

12: When setting a template on a view object, it should be a compiled
 template, not a name or selector string.
 See 06_accordion_switching-template.html

Fixes for #144 #146