Register a new list of T2References. The depth of the list will be
calculated based on the depth of the references within it - if these are
not uniform the list won't be created (all children of a list in T2 must
have the same depth as their siblings). Provided this constraint is
satisfied the list is named and stored in the backing store. The returned
list is at this point immutable, operations modifying it either directly
or through the ListIterator will fail with an IllegalStateException.
Implementations should copy the input list rather than keeping a
reference to it to preserve this property.