Finally commit the keyboard widget

This one was a long time comming. A lot of little Radical issues had
to be fixed for this to loop good. It is not complete yet, but well
past the point where it is useful. It use a little hack to prevent
the keymap change to be rejected by X. I knew this one for a long time
as I hit it back in Awesome 3.4, but could not fix it back then. Thanks
to LGI, I now can!

This code is incomplete and experimental, barely ready for basic production
use.