feat(Change Detector): Add support for collection content watch

Add support for content watch (collections are normally watched by ref only).

Features in this PR:
- add content watch,
- add Iterable watch (like array watch),
- add JS Object watch (like map watch).
Can you extract it into a private method? So we don't have three nested ifs.