Revert "Keep a trace of the intermediate software surface (if any) until the next render"

This reverts commit 8167618c1b699dbc5042a6f2e0a0231f1251a53e.
Reverted too much

This reverts commit 98248db46f40d6a0d622d02706da4058e808fe5a.
Reverted too much

This reverts commit 7b667175a01de60a49ac427e0da2cdaa7c4582db.
Simplify the main loop code by separating work in different functions.
Experimental: rewrite the main loop with a constant timestep (fix #351).

This should fix all different behaviors that we observed on slow
machines. These bugs were caused by the undeterministic timestep.

Now, on slow machines, the game will run slower, but the update()
calls will do exactly the same work.
Only use the subsurface trick finally : don't delete the subsurfaces queue if there is no draw on the Surface
Minor improves
Revert "Update the solarus_logo.lua of sample quest"

This reverts commit e3431302f5fc0df328ca8a0457f93cb43c05beed.
Update solarus_logo.lua again (just remove transparent color notion)
Fix empty texture creation
Call enemy:on_hurt() before enemy:on_dying() (fix #325).
Add an event block:on_moving() (fix #334).
Forgot to put the reference here. Saves 8% of CPU time.
When redrawing the map, blit a surface instead of filling color.

This can be faster.
Merge branch 'master' into texture
Coding style.
Reimplement hero sprites clipping using Sprite::draw_region().

Surface::set_clipping_rectangle() no longer exists.
Also fix Sprite::draw_region() that never worked.
Merge branch 'master' into texture

Conflicts:
	src/Map.cpp
	src/lowlevel/Surface.cpp
A Surface can now have an internal color. fill_color() method now just draw a subsurface of requested position, size and color. Not working for now.
Merge conflicts