Added a flag in the client to indicate whether its window is active.

This prevents the client from doing operations on a window that might
not be mapped onto the display.
Wrote some convenience macros for reading a Dimension2D.
Added an IconManager so clients can be hidden and unhidden.