Only process the existing batch of commands

Commands added while processing the queue are not run
Add al_commands_peek_queue()
Only wait for events if the command queue is empty
Use SDL_QUIT event to stop running
Add format parameter to Widget.bind_property()
clamp() allows min and max to be nil
Add mix() to interpolate between vectors
Make PanningWidget scale 2D
Add missing include for stdbool.h