maxrp was right about this one
Standardization to follow FHS and Fedora

Fedora 64 bit arch has /usr/lib64;
Manpages should be put to /usr/share/man/man1, or /usr/local/share/man/man1,  but never hear of /usr/man nowadays.
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)
Makes int32_t getwmdesktop() uint32_t as ws is elsewhere.

I don't think this should ever be a negative integer...
Removes check of potentially uninitialized values on resize.

hormaxed and vertmaxed may not be set when a window is resized, in any
case it seems as if they ought to be set to false regardless of their
initial value following a resize operation.

This generates a valgrind warning on window resize events and looks like
this:
==25842== Conditional jump or move depends on uninitialised value(s)
==25842==    at 0x403AA7: mouseresize (2bwm.c:1169)
==25842==    by 0x4048AE: mousemotion (2bwm.c:1707)
==25842==    by 0x4030E8: buttonpress (2bwm.c:1736)
==25842==    by 0x402F1E: main (2bwm.c:1837)
==25842==
Switches to only an int and not pointer to clean up intermittent crashes for now.
Ensure correct and consistent types (uint16_t) for width and height.
Replace use of asprintf() with snprintf().

In this change I choose the lesser of the response length or 16 and add
the MIN() macro -- asprintf is not in the c99 standard and needs
-D_GNU_SOURCE or -D_BSD_SOURCE to prevent an implicit definition
warning.

This change also ensures against absurdly long output names
(should be almost always be shorter than 8 char).
Define TWOBWM_PATH if not defined to ensure always defined.
Cast ignored results to void, explicitly cast to int after division into generic integral.

These help when using static analysis tools like splint.
We always do xcb_delete_property before further ops, do it in one place.
free() the xcb_query_reply_t here, per the documentation.
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.
These are generally initialized elsewhere.
Adds curly braces to loop for clarity.
Free any items in wsitems
free() wm_name_window's malloc'd chunk
Simplifies main() so that it is responsive to signals.

With the prior implementation cleanup would never run on SIGINT or
SIGTERM.
merging with maxrp changes