Abstracted away accounting for taskbar.

Also now check for the _NET_WM_WORKAREA hint and use that if available.