WIP:  EWMH / Clients support

No where near complete; may leak memory, etc.
Make geometries a list

This is so that geometries can have more than one position; including
maximise.
WIP
Added geometry to managed client

When managing clients on first scan, ensure we can ascertain the window's
geometry.
Show windows in hex form.

When logging window IDs, show these in hex values.
Add geometries for clients

WIP
Introduce monitor_at_xy()

This finds the monitor for a given location x/y.
Add clients to a given desktop

This adds a managed client to a desktop for a specific output based on its
current location.
WIP
Check for existing WM

Add a check to ensure that when running lswm, we don't clobber an existing
WM somehow.
Fix WM check.
Merge branch 'ta/clients'