Snake moves based on queue

Input 'lag' fixed. Rather than the key interrupts affecting the move
of the head of the snake, they add a direction to a queue. On each
update pass the queue has the first value popped and assigned to
the head if it's a legal move.