VBlank and dependencies

VBlank has seven different modes. The one that sees the
most use is mode 0, which performs all basic display and
audio functions. The purpose of the others is unknown.

VBlank relies on the following functions:

-joypad
-cgb palette update
-dmg -> cgb pal conversion
-bg map update
-vram tile update
-tile animations
-serial request
-game timer

Tile animation is large enough to warrant its own commit.
Decompression function