Three fixes to TreeView controller

* don't use `firstElementChild`, since it's unsupported in older but
  supported browser versions
* reduce display delay of `TreeView` by:
  - removing `options.parent` to avoid circular list references which
    cause event proliferation
  - grouping `push` and `attr` operations
* ensure `child_options` is propagated to child lists
Fix splicing in changed attribute lists