rename test functions
separate palette conversion from internal palette reading
added benchmark
make sure MergePalettes returns a new copy instead of modifying the input variables