Most of the changes here are just type name / namespace updates for the new winit structure. The most important change is the new `start_loop` function in examples/support. winit doesn't provide poll_events anymore, so the usual structure of a rust `loop` pulling in events doesn't work anymore. winit does provide `run_return` on desktop platforms, which can somewhat replace it, but it's not recommended if it can be avoided (see [here](https://docs.rs/winit/0.20.0-alpha2/winit/platform/desktop/trait.EventLoopExtDesktop.html#tymethod.run_return)). To avoid having to restructure all the examples, the new start_loop attempts to emulate the old behaviour within the `run` function, though it still needs a move closure, so it has impact in some places. This emulating is definitely not the best way to handle this, this was just to get moving with the examples. Current state of the examples: *Working:* blitting, displacement_mapping, fxaa, image, info, instancing, manual-creation, picking, screenshot, sprites-batching, subroutines, teapot, tessellation, triangle Notes: - displacement_mapping: Just showing a red square, may not be work properly. - picking: Added hidpi mouse scaling. *Not working:* deferred, fullscreen, gpgpu, screenshot-asynchronous, shadow_mapping, all tutorial examples Reasons: - deferred: needs various ownership changes. - fullscreen: needs access to EventLoopWindowTarget, which is not passed in by the current `start_loop`. - gpgpu: doesn't run on my machine, so can't test it, but it passes rust check. - screenshot-asynchronous, shadow_mapping, all tutorials: These all use a `loop` for their game loop, instead of `start_loop`, so they need extra reworking.