Changelog
* Fixed bug where `collections.dflat` did not correctly handle empty dict leaves (0d5f43b59dfc83bb29adc91f03be197e9b425994)
* Fixed wrong exception thrown in `collections.drslv` for deep misses (9a550d9ed9b184d53fdf4d19c596b4556f23a170)
* Added `dataclasses.Index.__delitem___` (`del idx[x]`) (9fc5befe0892dce50baee2011e04b9b9d3171544)
* Added `dataclasses.Index.has` (6b29d0545dbc39426eb7ce6ad2447eb2f0287815)
* Added `dataclasses.Index.__len__` (`len(idx)`) (daf3c50f11e7ad3fd7d25d4b5abe7d293b95ce30)
* `dataclasses.Index.add` now allows single items
* Added `dataclasses.Index.gets` (daf3c50f11e7ad3fd7d25d4b5abe7d293b95ce30)
* Added `dataclasses.Index.freeze` and `unfreeze` (2cd47f21595cf786e50653ad45c6f80a2b21ba7d)
* Removed all `asdict` invokations in `dataclasses.Index` as it makes undesireable deep copies (5aff64a35e0e837aa986691e9aeb6d8ad9e96f4f)
* Deprecated `filesystem.git_hash` (c6e06036dabee79f6d0ce1065b9b59cabce322fb)
* Renamed `collections.flat` to `collections.lflat` (7817d909f4e4e67040af4eaa812159b594a45491)
* Added `collections.dconv` (376e7cc2d5aeb29cdc27b69adbaf8af771e7d4e6)