Also changed the game_update() interface to take dt in seconds as a
double (rather than milliseconds as an unsigned integer) as we're now
computing the refresh interval as a double anyway (by querying the
display mode). To my eye (and on my machine), all chunkiness is now
gone; the game feels very smooth.
This fixes an issue where tiles around the right and bottom edges
would not be drawn when vpos was just under a tile boundary. I'm
guessing it wasn't noticable before fixing the frame rate as the buggy
frames were only on-screen for a hilariously short amount of time.