[BUGFIX BREAKING] Fixed how parentController property of an itemController when nested

Fixed how parentController property of an itemController when nested.

When an `itemController` is specified for an ArrayController that itself has a `parentController`
set, the framework was previously setting the itemController's `parentController` property to the
ArrayController's `parentController` instead of the ArrayController itself. This commit fixes that
behavior, and improves the docs, naming, and logic around this case.

Fixes #4162