Add support for conditional shift modifier.

Before, wkb ignored the state of the shift key, instead relying on the keyval
name. This made it impossible to to handle, for example shift-space, because
the keyval does not change when the shift key is pressed. This commit allows
conditionally respecting the shift key state via the 's' (shift pressed) or 'S'
(shift not pressed) modifiers. If neither 's' nor 'S' are specified, the shift
key state is ignored.