alloc: Rename `blob` structure to `alloc_blob`
Use `unsigned` type for bit flags
vbe: Change type of `wait_for_retrace` flag to int

It is safer not to rely on the user providing a correct bit value.
timer: Make `timer_default_handler` internal
gfx_blit*(): Change type of `src` parameter to pointer to const
Makefile, .lnk: Put .obj files on individual lines
gfx: Move blit functions to image module
gfx: Change clipping coordinates to (x, y, w, h)
gfx: Use image structure for front and back buffer
image: `IMAGE_BLIT_MASK` is not a bit flag
gfx: Add gfx_draw_image() and gfx_draw_image_section()
Add atomic.h
timer: Add "real" timer module
gfx: Use timer module when testing for vsync

Our timer module allows a much higher timing resolution than the
standard clock() function when running under DOS.

This commit requires that timer_init() is called before gfx_init() and
that the timer is set to a sufficiently high frequency.
timer: Use correct conversion specifier in error message
Add vbeinfo program
xmemcpy: Add `restrict` qualifier
image: Add `restrict` qualifier to blit functions
timer: Use float type for time values
elist: Add elist_insert_front(), elist_insert_back() functions