When reading, create the local equivalent of a dataclass, so that access
doesn't require ["foo"] key syntax.
Also implement the copy protocol, so that we can safely make clones of
the references returned by the ListModel.
As discussed on Reddit, the magic import logic is not very tool friendly and a little too magic perhaps. Instead, this patch introduces an automatic loader (`slint.loader`), which can traverse `sys.path` and lazily load `.slint` files by attribute lookup.
Closes#4856