Add macro support

Wow! I actually wrote that code --as is-- 4 years ago but it didn't worked
back then. Now, surprisingly, it does! So enjoy, awesome now support macros!

I still need to bypass the keyboard grabber to send the original key presses
to the focussed client. It also need to ensure all butttons/keys are released
when the macro end and support mod keys.