pathfinding: implement navigation meshes

closes #31