Sprite position transformation with the camera

Sprites are now drawn at the correct spot on screen, using
AffineTransform's ability to transform a point.

Render's setSide() method works now, whereas before it would break
everything. Since the image and graphics are encapsulated in Render now,
it can reset those too to avoid the pointer breaking problems that would
otherwise plague that method.