1. Improved backing attribute logic: `__dict__` is used when available, slots are used otherwise. 2. Introduce `use_dict` and `use_slots` kwargs to constructors to enable manual determination of backing attribute logic.
1.2.1
Main changes:
1. Introduced the `TypedDescriptor` protocol, capturing the common logic of descriptors in the library. 2. Introduced a Mypy plugin to improve type inference on typed descriptors from this library.