Partial commit for SVY-6666, SVY-6818, SVY-6337, SVY-7028, SVY-7026.

It is not working yet. It's just a commit to merge easier with head
changes.

Still to be done: browser side refactor of components from array to
non-array, browser side impl. of custom json arrays, browser and server
side impl. of custom json object, making it work with all the changes.
Merge branch 'master' into refactor_conversions_to_9
Merge branch 'master' into refactor_conversions_to_9
Merge remote-tracking branch 'origin/master'