xhk: Check mirrored status before changing state

Sometimes, a user can while typing normally overlap a 'non-mirroring' key such as 'shift' or 'control'
while the space key is held. This can cause an unnecessary transition to the space-modified state
and will cause us to lose the space bar press even though no mirroring was desired.

This can often happen when a space is followed by a shift key in preparation of a capital letter.
xhk: Provide Space State debug information
xhk: Fix logic inversion in handle_key_press

This is a horrible typo to have in the code.
Copying and pasting code around has resulted in ProcessKeycode and SendKey using inverted key logic.
ProcessKeycode uses up_flag, where as SendKey uses key_down.

This should be fixed by using only one boolean value to represent key direction
xhk_layout: Provide key codes of a few useful keys
xhk: Add self test functionality