Fix issue of removing multiple nodes from one `unmap`

* Issue was that `removeChild` handler only checked for `id`, but some
  lists can contain multiple types.  When `id` of multiple objects
  overlapped, it would remove all matching elements (but not `unmap` in
  the database.)
* Also make consistent the `li` elements of TreeNode views.  They all
  now use `data-object-id` and `data-object-type`, and
  `data-object-type` is always `instance.constructor.table_singular`.