the combination function. must have a signature "double function(double,double) pure nothrow @nogc @safe"
var length arguments - slice 0..D is the values for the dimensions - D..$ is the slice with the layers - they can be double or instance of layer - The Layers can also have other types as long as they have a "equal"-function that has the signature as in the layer interface.
Generic function to combine different noise layers.