EventLoopProvider
This helps with portability and defines some top-level structure around the event loop, so in the future, backends can get an idea of what API to use. This also changes the API to be object safe by using `dyn` throughout.
CustomCursor
dyn
NamedKey
KeyCode
Icon
typos
cast_*