Rainbow example: Fixed a bug in the HSV conversion that caused an
overflow and resulted in incorrect colors when v was less than 255.
The solution is to make sure that the product of our multiplications
are always considered to be uint16_t instead of int16_t.
Changed version to 3.1.2 and updated the version history.