X.H.Modal: Add support for EZConfig-style bindings
X.H.Modal: Add support for EZConfig-style bindings

Add support for EZConfig-style bindings while also maintaining some
guarantees as to which type of representation we will store in the
extensible state.  This means that parsing of the keys will happen no
later than the call to `modal`.

Users can choose to use `mkKeysEz` or `mkKeysFun` to create a new
collection of keys to bind for a mode.  This is deemed more ergonomic
than exporting the respective constructors directly.

xmonad/xmonad-contrib,xmonad/xmonad-contrib