Add CreateHardwareSurface().
Directly use a HW surface and use SDL_FillRect.

This skips the need to convert the temporary surface and uses the
accelerated SDL_FillRect instead of setting the bytes directly.