Sizes wm_name_window buffer to reply_length+1 & ensures null termination.

The output of xcb_get_property_value is not null-terminated, which may
lead to unpredictable behavior of strstr (requires strings be null
terminated, as provided by the string literal).

Under Valgrind, this appears as:
==4260== Invalid read of size 1
==4260==    at 0x4A0C164: strstr (in /usr/lib64/valgrind/vgpreload_memcheck-amd64-linux.so)
==4260==    by 0x4054DF: setupwin (2bwm.c:334)
==4260==    by 0x402BD8: main (2bwm.c:706)
==4260==  Address 0x5464030 is 32 bytes inside a block of size 60 free'd
==4260==    at 0x4A07577: free (in /usr/lib64/valgrind/vgpreload_memcheck-amd64-linux.so)
==4260==    by 0x4054D2: setupwin (2bwm.c:332)
==4260==    by 0x402BD8: main (2bwm.c:706)
Ensures sizes are aligned & comparisons are like-to-like in get_unkil_state()

I started looking at this tipped off by the following valgrind warning:
==4572== Invalid read of size 1
==4572==    at 0x10F4CE: get_unkil_state (2bwm.c:328)
==4572==    by 0x10B7BA: main (2bwm.c:717)
==4572==  Address 0x623d500 is 32 bytes inside a block of size 36 free'd
==4572==    at 0x4C289DC: free (in
/usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==4572==    by 0x10F4CD: get_unkil_state (2bwm.c:327)
==4572==    by 0x10B7BA: main (2bwm.c:717)
==4572==
Ensure types and sizes are all aligned in getwmdesktop()

found with valgrind via this warning:
==15230== Invalid read of size 4
==15230==    at 0x10B7AF: main (2bwm.c:303)
==15230==  Address 0x623bdd0 is 32 bytes inside a block of size 36
free'd
==15230==    at 0x4C289DC: free (in
/usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==15230==    by 0x10B7AE: main (2bwm.c:302)
Merge branch 'valgrind' into maxpref

I've been running iterations of these changes for a couple days, I'll
stick with them.