Work around more browser bugs

drawImage is buggy in Firefox and Chrome. Talking with
Ian Hixie showed that these are in fact browser bugs.

https://code.google.com/p/chromium/issues/detail?id=176714
https://bugzilla.mozilla.org/show_bug.cgi?id=842110

There are still some redraw issues, but I think these are of my
own fault, not browser bugs. You never know, though.
Cache the client/window geometry

This will make approaches to doing things like constraining
windows much easier in the future.
Handle partial updates in syncGeometry

And handle it well by not making so many server calls.
Rename syncGeometry to updateGeometry

Ths better describes what the function does.
Use updateGeometry to update dragging

This keeps the server calls to resize windows in one place.
Make sure all geometry values are pixel-perfect

We don't want any subpixel nonsense.
Fix a case of subpixel geometry values

During the silly animation