Interface for - basically 3D - noise generation algorithms, based on the
 book: Texturing & Modeling - A Procedural Approach
 
 The main concept is to look at noise as a basis for generating fractals.
 Basis can be anything, like a simple:
 
 
 float value(float x, float y, float z) {
                return 0; // a flat noise with 0 value everywhere
 }
 
 
 or a more complex perlin noise (
ImprovedNoise
 
 Fractals use these functions to generate a more complex result based on some
 frequency, roughness, etc values.
 
 Fractals themselves are implementing the Basis interface as well, opening
 an infinite range of results.