Allow widgets to display more than once within container widgets.

Adds the ability to display multiple widgets within container widgets and adds indexing by view.id in addition to model.id.

closes #5958
It would be nice to transfer the `options` argument to `update_children` then `create_child_model` and `create_child_view`. 
Besides, Passing {parent: this} could be useful in general, so that child views can access  their parents via the `options` member.