xkb: Fix off-by-one error in XKeycodeToKeysym

The code here that made indexes greater than 3 refer to XKB symbol
groups had an off-by-one error, so it would always leave out the symbol
that should have been at index 4. Rewrite the code to fix this and
simplify the logic a bit.

Signed-off-by: Adam Sampson <ats@offog.org>
4 jobs for keycodefix in 7 minutes and 35 seconds (queued for 58 seconds)