Fix SDL_SetColors && SDL_envets

I found little mistake with implementation of  SDL_SetColors
```c++
int SDL_SetColors(SDL_Surface *surface, SDL_Color *colors, int firstcolor, int ncolors);
```
firstColor - is offset for surface palette not for colors array. Look to sdl implementation:
```c++
static void SetPalette_logical(SDL_Surface *screen, SDL_Color *colors,
			       int firstcolor, int ncolors)
{
	SDL_Palette *pal = screen->format->palette;
	SDL_Palette *vidpal;

	if ( colors != (pal->colors + firstcolor) ) {
		SDL_memcpy(pal->colors + firstcolor, colors,
		       ncolors * sizeof(*colors));
	}

        //...
}
```

So i fixed it, also i fix the test. 
And i add missing SDL_NOEVENT in enum.

test: sdl_canvas_palette && sdl_canvas_palette_2 passed