addChildren update: Assign keys based on position within context of node tree.

- Assures nodes generated with `addChildren` are assigned the correct key within the context of the tree.
- Tested with and without `insertBefore`, and with arrays of nodes.

The reason for this addition is my application depends on the correct node key being set when I add children to the tree. This allows me to use `myNode.setActive()` on nodes generated with `addChildren`. Previously, the node key would return as '_1', which I was unable to target programmatically.

While looking at the `addChildren` method. It seems to me that it should return `nodeList`, and not `firstNode`. I did not change this as I don't want to make a breaking change unless the team approves.