Update World API and implementation:
rename size fields to sizeX_/sizeY_/sizeZ_, add helpers such as
mineAllPositive, positiveAverage, topPositiveSum and a sort helper,
and fix related surface/mine semantics for dynamic columns.
Add comprehensive unit tests in tests/test_all.cpp
Refactor CMakeLists: set C++17 and CMAKE_CXX_STANDARD_REQUIRED,
introduce a SOURCES list used by executables, add a
deep_miner_tests target, and set cmake_minimum_required to 3.15
Move UML PDF to doc/ and update .gitignore. Normalize includes,
whitespace and function signatures across headers/sources and add
concise class/function documentation. Fix RandomBot so the mine
limit is computed once and simplify DigDeepBot/SortBot mining logic.
Tidy World/Game initialization, error handling, and minor const/var
clarifications for readability and correctness
Add uml_diagram.pdf and a .gitignore entry to ignore the TeX source.
Remove unused <atomic> include, shorten the console separator, and add
a comment describing default player position values in World::display.
Make World::checkEffects non-const and provide its implementation.
Add RandomBot implementation and declare a private randomNumber helper.
Add a simple main() entrypoint.