Changed method of validating colours

To satisfy PixelToast's desire for me to not do it how I was doing it. Same result, different, longer, way (logically and function calls) of getting there.
Added gitignore
Better gitignore