Too much change to list, it compiles, but not working.
fixed a bug that grid_unit is trying to free a surface that doesn't exist. Also changed the way gu_array is being freeed.
initial commit of renderer.cpp and renderer.hpp