Commit 61 (Beta Candidate)

- Improved support for computed values in paths: support
  and bug fixes for templates (and data-linking) which
  include complex expressions with computed properties
  (with or without parameters), including computed values
  which return objects, and using paths which chain
  computed values - for example:
  "a.b().c.d.e(p, q).f"

- Full support for deep paths with computed values, with
  live data binding to any chosen depth (see Breaking
  Change below), and optionally involving complex
  expressions - for example:
  "a.b()^c.d.e(p + (r - 1), q + 't').f + 'x' + g"

BREAKING CHANGE
(see https://github.com/BorisMoore/jsviews/issues/285):
- Depth of binding of paths is now controlled by the '^'
  character, whether or not the path includes computed
  values.
  For example:
  "a.b().c"
  will do leaf binding only, so will 'observe' (listen to)
  changes in c, but NOT changes in b(). (This is breaking,
  since previously this path DID observe b()...)
  To observe both c and b(), use the path:
  "a.b()^c"
  To observe ALL changes in the path - a, b() and c(),
  use:
  "a^b().c"

- Improved support for custom tag inheritance from
  base tag - e.g.: {baseTag: "for", ...}

Bug Fixes
https://github.com/BorisMoore/jsviews/issues/285
https://github.com/BorisMoore/jsviews/issues/287
https://github.com/BorisMoore/jsviews/issues/289

- Several small additional bug fixes.

- Many new unit tests added.