[Win] Replaced KeyMap dictionary with switch

This reduces the amount of allocations on the startup path.
[Input] Use Key.LastKey instead of Enum.GetValues

This avoids unnecessary memory allocations in the KeyboardDevice
constructor.