We always do xcb_delete_property before further ops, do it in one place.
free() the xcb_query_reply_t here, per the documentation.
Revert "Consistently represent workspaces as one type: int8_t"

This reverts commit 6081a74088488343fb6b7b0ffbeee8ae9f70dc48.

actually this needs to be int16_t
Represent workspaces consistently as uint32_t.

uint32_t is the most common denominator. Note that the Args struct's i
occasionally becomes a WS and needs to be uint32_t too instead of
uint8_t.
Provide the correct length to malloc to allow for nullterm.
Simplifies main() so signals end up handled and cleanup is run.

I'm not all too sure why the signals weren't getting handled before, but this is nice and simple.
Ensure execvp is never provided the correct type.

Not a null pointer, but rather a \0 terminated char array.
These are generally initialized elsewhere.
Adds curly braces to loop for clarity.
Free any items in wsitems
Revert "Ensure execvp is never provided the correct type."

This reverts commit 24cff4786b2b088498820b5f537766c0b7aad563.