Commit 53 (Beta Candidate)

New features and improvements
- observe()/unobserve() and observeAll()/unobserveAll() now support
  namespaces. Pass one or more (whitespace separated) namespaces
  as first parameter (where a namespace is as in jQuery events and can
  include dot-separators: "aaa.bbb.ccc"). Documentation to follow, but
  see unit tests for examples

- In JsViews, invalid syntax using {{}} tags within element markup is
  now detected, with a specific error message.

Bug fixes:
  https://github.com/BorisMoore/jsviews/issues/249
  https://github.com/BorisMoore/jsviews/issues/250
  https://github.com/BorisMoore/jsviews/issues/251
  https://github.com/BorisMoore/jsrender/pull/236

- Fix for disposing contained bindings in some (unusual) scenarios
   when updating tag controls within element-only content.
Commit 54 (Beta Candidate)

Note that this update brings important perf optimizations and many
significant feature improvements, with corresponding changes to the
implementation.
For normal usage patterns these do not correspond to breaking changes.
However there could possibly be breaking changes on a few advanced
scenarios.
If appropriate, please file issues if breaking changes are
observed. See also the samples and unit tests for changes that take
advantage of new features below.

New features and improvements

- Many major performance improvements, including much improved
  performance for {{>...}} - and optimizations allowing extremely
  fast rendering for render() in the case of simple templates.
  (See http://borismoore.github.io/jsrender/test/perf-compare.html)

- Support for overriding error messages.
  $.views.settings({onError: function(...) {...}});
  (See unit tests. Examples to follow.)

- BREAKING: {{:expression noError=true}} is no longer supported.
  Replaced by more powerful and extensible 'onError' feature below.
  (onError=null or onError='' replaces previous noError=true)

- New 'onError' feature: fallback strings or onError handlers for
  any tag instance: e.g. {{:missing.object onError='fallbackString'}}
  or {{myTag onError=myErrorHandler/}}.
  (See unit tests. Examples to follow.)

- Error messages are now HTML encoded when rendered into HTML by
  a .link() call.

- support for binding to tag properties and contextual properties:
  e.g {{xxx ^foo=expr1 ^~bar=expr2}} allowing then to bind to tag.foo
  or ~bar. (See unit tests. Examples to follow.)

- tagCtx.params now provides stuctured information about props and
  args - parameter string for each

- $.views.sub.parse(parameterExpression) converts any parameter
  expression to corresponding code.
  Include bindingsArray:
  $.views.sub.parse(parameterExpression, bindingArray) to obtain
  list of path expressions for dependencies

- views now have a boolean 'linked' property with value 'true' if
  created via link() rather than via render()

- Custom tags: Having an empty template: "" in tag definition is
  now supported.

- New support for observably removing a property from an object:
  $.observable(object).removeProperty(path)

- Many improvements to feature for attaching event handlers using
  data-link="{on ... myHandler}".
  (See unit tests. Examples to follow)

- jsonview fix to support rendering non-string values

Bug fixes:
  https://github.com/BorisMoore/jsviews/issues/251
  https://github.com/BorisMoore/jsviews/issues/258
  https://github.com/BorisMoore/jsviews/issues/259
  https://github.com/BorisMoore/jsviews/issues/262
  https://github.com/BorisMoore/jsviews/issues/263
  - Fix for collision with tags which add props() jQuery method:
  see: http://stackoverflow.com/questions/23860085/jsrender-js-fails-when-i-add-bootstrap-tag-js/23926792#23926792
Commit 55 (Beta Candidate)

- New 'trigger' feature:
  Two-way data-linking now allows opting in to additional trigger
  events, so that data updates on every keyup event, as text is
  entered. This applies to data-linked inputs, textareas, and
  content-editable elements, as well as to custom tags, such as
  {{textbox}} which provide two-way binding through linkedElem.
  For example, setting <input data-link="name trigger=true" />
  means that updates to the name property will happen as you type,
  not just on leaving the textbox.

  See unit tests for full range of options on this feature.

- Many new unit tests

- Several minor bug fixes

- All samples updated to take advantage of new 'trigger' feature.
Commit 56 (Beta Candidate)

IMPORTANT: This commit corrects an important IE8 bug that was
in the previous commit (55)

This commit also includes some significant updates and improvements:

- New API for creating derived tags - simply specify "baseTag" on
  the custom tag declaration:

  $.views.tags({
    range: {
      // Inherit from {{for}} tag
      baseTag: $.views.tags["for"],
      ...

  See samples: http://www.jsviews.com/#samples/jsr/tags/extend-for
  and http://www.jsviews.com/#samples/tag-controls/range

- trigger=true on data-linked inputs, or two-way binding now uses
  keydown - so data entry updates as you enter each key.

  Setting trigger=true on data-linked inputs, textareas, content-editable
  elements, or custom tags such as {{textbox}} (with two-way binding
  through linkedElem) now triggers immediately after keydown, rather
  than on keyup as previously.
  So setting <input data-link="name trigger=true" />. for example,
  means the name property will update as you enter each character.

- Improvements to DataMap feature. Used for {{props}} tag.
  Examples to follow.

- Support for loading JsObservable (jquery.obserable.js) without JsRender
  for observable-data scenarios without JsViews.

- Support for flexible load sequence for JsViews: Can now load
  JsObservable before JsRender and JsViews, as well as the more
  normal sequence of JsRender, JsObservable, JsViews (as used in the
  single file jsviews.js).

- Many new unit tests for JsObservable.

- {on now supports passing parameters directly to the bound method:
  e.g. {on ... method param1 param2}
  Examples to follow.

- Improvements to contentEditable support.
  Examples to follow.

- Use of autoBind property on custom tags no longer necessary.

- Bug fixes:
  https://github.com/BorisMoore/jsviews/issues/264
  https://github.com/BorisMoore/jsviews/issues/265
  https://github.com/BorisMoore/jsrender/issues/238
  https://github.com/BorisMoore/jsviews/issues/267
Commit 57 (Beta Candidate)

Many small bug fixes and improvements, as well as the following specific
fixes and improvements:

Bug fixes:
  https://github.com/BorisMoore/jsviews/issues/270
  https://github.com/BorisMoore/jsviews/issues/271
  https://github.com/BorisMoore/jsviews/pull/275
  https://github.com/BorisMoore/jsrender/issues/241

Improvements:
  - ~tag.parents or ~parentTags now includes the current tag
  - template.link(container, data, context) now supports linking without
    passing in data - e.g. for a template that links only to context or
    helpers, not to a model.
  - Structured path dependencies for tags: For compiled templates or
    data-link expression, fn.paths and fn.deps now track dependencies
    separately for each argument or property of the tag.
  - Bug fixes and improvements to filtering support on observe APIs
  - Improvements and bug fixes and unit tests within support for
    top-level data-linking $.link(expression, target, data, context)
    or $.link(true, target, data, context).
  - Fixes to $.view(container, true) for array view when array is empty.
  - data-link="... onerror=null" is now equivalent to
    data-link="... onerror=''".
Commit 58 (Beta Candidate)

- Fixes and improvements for data-linking to visible{...}
  or to different target attributes, and for overriding the
  target attribute in the tag init().

- Many new unit tests for these scenarios.

Bug fix:
https://github.com/BorisMoore/jsviews/issues/277
Commit 59 (Beta Candidate)

- Top-level binding target can now include elements with
  templated content. Top-level binding will now skip templated
  data-bound elements, rather than adding additional dual
  bindings.

- Converters can be swapped through data-linked tag properties.
  e.g see unit tests:
  <input data-link="{twoWayTag name ^convert=~options.cvt}"/>

- Data-linking with deep paths and using "onerror" now supports
  dynamically moving between valid and invalid paths (missing
  objects deeper in path) while maintaining full data-binding
  to the whole path.

Bug fixes:
https://github.com/BorisMoore/jsviews/issues/281
https://github.com/BorisMoore/jsviews/issues/279

- Some additional bug fixes.

- Many new unit tests added.
Commit 60 (Beta Candidate)

- Some bug fixes for childTags() API when in element-only
  content.

- Additional work on data-linking with deep paths and
  using "onerror" - plus memory leak bug fix, for scenarios
  called out in:
  https://github.com/BorisMoore/jsviews/issues/281

- Some additional bug fixes.

- Many new unit tests added.
Fix issue #287

Update such that each instantiation (view)  of a template has it's
own tmpl.links object so that computed observables stored in the
tmpl.links.dep array are specific to that particular view and
not shared across views.

Added test cases to cover this scenario.