Bug 509: Added In-memory datastore support for wildcarded change listeners

Added support for wildcarded data change listeners,
which may register to updates of list entries (and their
subentries) without specifying key for list items.

Support for Wildcarded Data Change Listneners is done by
refactoring DataChangeEventResolver into Map/Reduce processing.

Map phase:
When visiting each modified node (with key) we also
looks for listener listening on same level without key.
This actually may trigger creation (mapping) of multiple events
for same listeners (eg. two flows we're added at the same time).

Reduce phase:
We walked thru all listeners to be notified and if they have
multiple events assigned, we merge them into one even to be
delivered.

Change-Id: Ic05ddae10bd0b316009cc5bafdeca76350f00390
Signed-off-by: Tony Tkacik <ttkacik@cisco.com>
Bug 509: Fixed small discrepancies in Binding Data Change Events.

DataNormalizer which was responsible to render representation
of Instance Identifier in original format was introducing
additional node, when translation happened from normalized
to legacy, which is only triggered by Data Change Events.

Implementation of responsible algorithm was changed to
use schema in order to derive legacy InstanceIdentifier.

Data Change Events

 - Translated Data Change events were deserialized from
   DOM format on each access to fields, which may introduced
   CPU time overhead.

   Immutability of backing Data Change Events allows to
   add lazy caching of translated TOs, since event and data
   contained in Event Object are immutable.

 - getUpdated*Data in original Binding APIs returned
   both created and modified, so backwards-compatible fix
   was introduced.

Change-Id: Idab3dffb8651d50cca79a22ddcd43af29561b80e
Signed-off-by: Tony Tkacik <ttkacik@cisco.com>
Signed-off-by: Robert Varga <rovarga@cisco.com>
BUG-509: add missing copyright headers

Change-Id: Idb205cb5e14364661de24b0c9a8008a5995ba08b
Signed-off-by: Robert Varga <rovarga@cisco.com>
Merge "Bug 509: Added In-memory datastore support for wildcarded change listeners"
Merge "Bug 509: Fixed small discrepancies in Binding Data Change Events."
Merge "BUG-509: add missing copyright headers"