add findTriangle() to Surface
add LinearFunction in MathLib
add MeshItemsSearcher
add distribution classes
add tests for distribution