Fixed Surface::blit() method. Now it all works, even when using a source rectangle.