improve error macros

no need to type __FILE__ and __LINE__ everywhere in the file, so we let
the macros take care of putting them for us.Only sdl_image_error because
it's used inside image_load because we need the information from the
caller not the function itself.
encapsulate SDL_BlitSurface inside blit_surf

now the SDL_Rect is created by blit_surf(), however game structures
still use SDL_Rect to store position (may be it will be replaced with
simpler point struct.