This patch extends perlin noise to operate in 1D, 2D, 3D, and 4D
space. An AVX implementation of the noise will follow.
Previously, a constant offset of 13.5 was added to the noise to act as a seed for generating distortion textures. Additionally, swizzling was performed to act as a seed for the Color outputs. This cased some issues, in particular, swizzling meant zero components may result in identical noise outputs and a constant value of 13.5 meant that distortion may happen only at close to zero areas.
To solve this, we use random offset functions that generates offsets at compile time, you can see this in details in the code. This change meant that the pattern of distortion will change and won't be identical to the previous version of the node.