Bug 936643 - [Settings] Implement ListView.destroy() - r=arthurcc

- Adds `Observable().unobserve` as well as `ObservableArray.unobserve()`
- Adds `ListView().destroy()`
- Adds an element cache for `ListView` so that a re-used element can automatically destroy it's old `ListView`

Closes gh-13724