Add random and rainbow

Use "random" as a color or a style to pick a random one for each pattern.
Use "rainbow" as a color to alternate colors in rainbow gradient.
Fix #1