FLUID-4035: Partial work in refactoring the Pager
Merge branch 'FLUID-5029' into FLUID-4035
FLUID-4035: Pager split out into separate components and files mirroring original ancient work on lost SVN branch FLUID-2881. Test cases similarly factored - next issue is correction of dynamicComponents -> top-level material gearing
FLUID-5022: Fix and test case for dynamic components targeted at non-options material
FLUID-4035: First working test cases in very simplest configuration. Rewritten to use transactional data binding features for which case these were originally designed. Improved diagnostics in cases of failed view components. Fixed bug introduced earlier with "renderTarget" functionality in RendererComponent.
FLUID-4035: All tests passing for basic pager for the first time. Fixed conditions in DataBinding for auto-transactions - a PostGuard should trigger these too. Still several issues with model idiom - need to think more about event sequence on startup. Listeners which are sensitive to deltas should in theory receive initial "delta from nothing" as model is populated on startup. Timing of this event is problematic though - model is really populated "early" through gingerness, but many listeners will not really be ready until onCreate. However, we could still supply a synthetic empty "oldModel" for this special event. Still raises the issue that crucial guards (e.g. pageCount) may not execute until late into the lifecycle. Also may upset a lot of existing code with this unexpected extra event.
FLUID-4035: Good new scheme allows more graceful model initialisation using new "initModelEvent" approach. Even listeners unhelpfully added at a later time (pending solution for FLUID-4258) will be walked through an apparent sequence of the model initialising itself from {} to its true initial value
Merge branch 'master' into FLUID-4035
FLUID-4035, FLUID-4334, FLUID-5046, FLUID-4036, FLUID-2880, FLUID-4789: Update of Pager to current standards, together with refactoring into 3 components. Some work on RendererComponent itself makes this now dependent on IoC - fix to lifecycle of "refreshView" and "produceTree". Fixes to DataBinding handling of duplicate ChangeEvents. Fix to implementation of marker detection. Fix to implementation of "destroy" for root of component tree - now correctly causes recursive clear, which exposed bug in UIOptions ModelRelay system. Framework test cases rewritten to reflect final withdrawal of support for manual lifecycle components, of which now NONE REMAIN IN THE FRAMEWORK.
FLUID-4071, FLUID-4021, FLUID-3770: Corrected handling of page size change in the pager - this failed to return the pager to a valid page if the page count was reduced. This required removal of the strange "internal applier" in the transactional ChangeApplier, since we require transactionally generated changes themselves to be guarded - however this scheme is strange and unnatural, requiring a fictitious "forced change" to be generated within the transaction. Test cases updated to guard against infinite recursion in guards which is now possible. This whole framework area must be considered cursed and will be reimplemented as soon as "ModelRelay" work is mature enough. Must not be advertised as a public API. Corrected implementation of sorting in the Table component. Improved options in pager demo as per FLUID-4021. Rewritten "FiveStar" demo to modern framework standards. Almost the last call to "fluid.initView" remaining in the wild. Implemented "annotateSortedColumn" option for PagedTable for FULID-4071. Hoisted fluid.iota into main framework for FLUID-3770. Fixed implementation of FLUID-5048 test case which would fail 1 time in 2 on Chrome as a result of assumptions on ordering in JSON objects.
FLUID-4035: Rewriting of the very last manual lifecycle component left in the wild: FSS mobile theming demo. This demo has in fact been broken for several years, ever since "FluidView.js" was introduced as a required dependency for view components in late 2010. It was mangled somewhat further during the mass renaming of demo files in 2011 with some references missed to the old file "themer.js".
Merge branch 'master' into FLUID-4035
Merge branch 'master' into FLUID-4035

Conflicts:
	src/webapp/components/uiOptions/js/ModelRelay.js
FLUID-5082: Correction to "soft namespaces" algorithm, both to correct dispatching bug as well as lengthening namespaces to include source component where registered. This requires upgrade in the base framework to insert a source component record into every listener record - can't be done with mergePolicies since they are stateless. Note that this now changes the record stored in "rawDefaults" to be a copy of the original options. This will head off some bugs in general but also will need a cleanup at some point to catch several sites where options are now being duplicated unnecessarily. After 4 years we now also have a test that the rendering version of the pager actually renders anything ...
Merge remote-tracking branch 'amb26/FLUID-4035'

* amb26/FLUID-4035:
  FLUID-5082: Correction to "soft namespaces" algorithm, both to correct dispatching bug as well as lengthening namespaces to include source component where registered. This requires upgrade in the base framework to insert a source component record into every listener record - can't be done with mergePolicies since they are stateless. Note that this now changes the record stored in "rawDefaults" to be a copy of the original options. This will head off some bugs in general but also will need a cleanup at some point to catch several sites where options are now being duplicated unnecessarily. After 4 years we now also have a test that the rendering version of the pager actually renders anything ...
  FLUID-4035: Rewriting of the very last manual lifecycle component left in the wild: FSS mobile theming demo. This demo has in fact been broken for several years, ever since "FluidView.js" was introduced as a required dependency for view components in late 2010. It was mangled somewhat further during the mass renaming of demo files in 2011 with some references missed to the old file "themer.js".
  FLUID-4071, FLUID-4021, FLUID-3770: Corrected handling of page size change in the pager - this failed to return the pager to a valid page if the page count was reduced. This required removal of the strange "internal applier" in the transactional ChangeApplier, since we require transactionally generated changes themselves to be guarded - however this scheme is strange and unnatural, requiring a fictitious "forced change" to be generated within the transaction. Test cases updated to guard against infinite recursion in guards which is now possible. This whole framework area must be considered cursed and will be reimplemented as soon as "ModelRelay" work is mature enough. Must not be advertised as a public API. Corrected implementation of sorting in the Table component. Improved options in pager demo as per FLUID-4021. Rewritten "FiveStar" demo to modern framework standards. Almost the last call to "fluid.initView" remaining in the wild. Implemented "annotateSortedColumn" option for PagedTable for FULID-4071. Hoisted fluid.iota into main framework for FLUID-3770. Fixed implementation of FLUID-5048 test case which would fail 1 time in 2 on Chrome as a result of assumptions on ordering in JSON objects.
  FLUID-4035, FLUID-4334, FLUID-5046, FLUID-4036, FLUID-2880, FLUID-4789: Update of Pager to current standards, together with refactoring into 3 components. Some work on RendererComponent itself makes this now dependent on IoC - fix to lifecycle of "refreshView" and "produceTree". Fixes to DataBinding handling of duplicate ChangeEvents. Fix to implementation of marker detection. Fix to implementation of "destroy" for root of component tree - now correctly causes recursive clear, which exposed bug in UIOptions ModelRelay system. Framework test cases rewritten to reflect final withdrawal of support for manual lifecycle components, of which now NONE REMAIN IN THE FRAMEWORK.
  FLUID-4035: Good new scheme allows more graceful model initialisation using new "initModelEvent" approach. Even listeners unhelpfully added at a later time (pending solution for FLUID-4258) will be walked through an apparent sequence of the model initialising itself from {} to its true initial value
  FLUID-4035: All tests passing for basic pager for the first time. Fixed conditions in DataBinding for auto-transactions - a PostGuard should trigger these too. Still several issues with model idiom - need to think more about event sequence on startup. Listeners which are sensitive to deltas should in theory receive initial "delta from nothing" as model is populated on startup. Timing of this event is problematic though - model is really populated "early" through gingerness, but many listeners will not really be ready until onCreate. However, we could still supply a synthetic empty "oldModel" for this special event. Still raises the issue that crucial guards (e.g. pageCount) may not execute until late into the lifecycle. Also may upset a lot of existing code with this unexpected extra event.
  FLUID-4035: First working test cases in very simplest configuration. Rewritten to use transactional data binding features for which case these were originally designed. Improved diagnostics in cases of failed view components. Fixed bug introduced earlier with "renderTarget" functionality in RendererComponent.
  FLUID-5022: Fix and test case for dynamic components targeted at non-options material
  FLUID-4035: Pager split out into separate components and files mirroring original ancient work on lost SVN branch FLUID-2881. Test cases similarly factored - next issue is correction of dynamicComponents -> top-level material gearing
  FLUID-4035: Partial work in refactoring the Pager