Fixes related to SVY-6452 : NGClient: support windows plugin

- rhino to sablo conversion was making copies of the property tree - so
if JS assigned a value of the subtree and continued to modify it those
changes were lost
- rhino <-> sablo conversion was not implemented correctly for
webservices, just for webcomponents (last commits ommitted services part
of it)
- rhino wrappers for arrays and objects that are change-aware didn't
have methods like push, slice, ... that JS expected to have
- rhino wrappers lost all existing custom defined JS functions or
properties that were not in PropertyDescription; so if you would assign
to such a property a JS object or array with custom contents/functions
those would no longer be accessible when you used that property again
- window plugin doesn't have getters for popup menu; this means users
will probably keep references of those values (that are actually
sub-properties of the 'popupMenus' property). So the window plugin must
do set/get instead of just set in the propety each time - so that next
request when the user uses the kept references to sub-properties those
are change-aware.