Return copy of the predefined palettes

Whene a schema with predefined palettes is used, calling schema will
return one of the palettes.  This allows caller to change the value
of the array and in this way affect the palette.  Fix it by making
palette.Schema::self return a copy of the array.