Add flags and lacunarity as new noise parameters

Add 'absolute value' option to noise map functions
Extend persistence modulation to 3D noise
Extend 'eased' option to noise2d_perlin* functions
Some noise.cpp formatting fixups
Always escape user provided data in mainmenu fields
Fix lighting artifacts (Issue #1887).
Fix struct vs. class in forward declarations
Optimize noise implementations
Fix compiler warning (signed vs. unsigned)
Biomes: Make biome heat and humidity noise parameters user-configurable
Noise: Update Noise::resizeNoiseBuf to account for lacunarity not equal to 2
Fix builds failing on BSD-like (such as OSX) due to an irrlicht bug (temporary fix)

Details:
- https://sourceforge.net/p/irrlicht/bugs/433/
- https://github.com/minetest/minetest/issues/1687#issuecomment-61368769
- https://forum.minetest.net/viewtopic.php?f=42&t=9190&start=125#p159364

In case when "settings.h" is included from "emerge.cpp" or
"environment.cpp", u64 type has "unsigned long" length because
previously <stdint> was included. When "settings.h" is included from
"settings.cpp", u64 has "unsigned long long" length because no <stdint>
was included previously. This leads to different signatures of "setU64" method
and linker cannot find appropriate symbol.

The best fix of this bug should be done in the Irrlicht, but as hotfix I
think this is OK and better than types changing.

Previously this bug didn't appear because there was no "settings.cpp" file and
implementation of all methods was done in the header file.
Increase performance of getLight() by at least 2x

Leads to the following increases:
getSmoothLight() approx.     40% increase
getTileInfo() approx.        25% increase
MapBlockMesh::MapBlockMesh() 25-30%
Ignore .name directories and files

Signed-off-by: Craig Robbins <kde.psych@gmail.com>
Rewrite fs:GetDirListing(file) by kahrl
Settings: Make setting entry group and values mutually exclusive

This greatly reduces the complexity of Settings code.
Additionally, several memory leaks were fixed.
Rename and repurpose minetest.set_noiseparam_defaults to set_noiseparams
Settings: Sanitize setting name everywhere, not just LuaSettings
Noise: Create a deep copy of NoiseParams
Remove get_noiseparams function. read_noiseparams should be used from now on
Add paste command (Ctrl-V) in GUIChatConsole