Update for language changes

Major changes:

-   No more `trait Window`. `struct Window` wraps `HWND`.
-   `trait WndProc` is added.
-   Remove all `@` and `@mut` usage.
-   `wnd_proc` uses `&self` rather than `&mut self` to prevent
    `key_win_map` mut disaster.