More Gfx clean up

I've cleaned up the gfx_fill_rect code a bit. I've also fixed a few bugs to do with zooming although I think it will defs need a proper look at once we have some real code that calls for it. Gfx_clear has been updated and i think that may fix a few small issues with refreshing.