* improv: wrap ColorPicker in memo to prevent unnecessary rerenders
* improv appearance: wrap updateColor in useCallback to prevent unnecessary rerenders due to changing reference to the func
* improv: define ColorCollection Component as top level, and modify it to prevent unnecessary rerenders