refactor LinearGradient and RadialGradient and add fillOpacity support for LinearGradient and RadialGradient