Updates xmacro to handle press and release

Keystroke now accepts three formats to produce output

* keyname -> creates a press and release
* press:keyname -> creates a press only
* release: keyname -> creates a release only

XMacro play now takes in a single string to produce the final command.
For example, something like alt+F4 should now be possible with the following:
  * "press:alt press:F4 release:F4 release:alt"

The actual string output is tested (via unit tests)
but I have not actually tried the output on my machine to see if it works.