update dependencies and change window handling according to winit-0.30
This crate relies on winit and pixels crates to handle the window
rendering. winit introduced some breaking changes in v0.30 and this
commit incorporates those. The Screen implementation has also been
simplified to use channels instead of Arc, Box, and Mutex.