xmalloc: Add xmalloc() / xfree() statistics
Replace all free() calls by calls to xfree()

This allows us to track memory allocations and deallocations completely.
sprite: Add functions for obtaining the top-left pixel coordinates
game: Fix memory leak

The calls to actually deallocate the duck structures were missing.
duck: Add create_duck() / delete_duck() functions
sprite: Add create_sprite() / delete_sprite() functions
sprite: Automatically remove sprite from any list when destroyed
duck: Automatically remove duck from any list when destroyed
duck: Add duck_cleanup() function for deleting allocator blobs
game: Add call to duck_cleanup()
sprite: Add sprite_cleanup() function for deleting allocator blobs
game: Add call to sprite_cleanup()
scene: Initialize background to NULL

The background image must still be set to a valid image before drawing a
scene.
scene: Add damage list system

Before this commit, we have always redrawn the complete background in
every frame, which, in our case, is not the most efficient solution.
This commit adds a damage list system, which keeps a list of "damage
rectangles" for both drawing buffers, and redraws only those parts of
the background that have been damaged in the last drawing cycle to the
respective buffer.