* Expose EditorNavigationMeshGenerator as an engine singleton so users
can generate navmesehes from `tool` scripts.
* Add support for generating navmeshes from static colliders. All
collision shapes are supported except for Plane (since Plane is an
infinite collider and navmeshes need to have finite geometry).
* When using static colliders as a geometry source, a layer mask can be
specified to ignore certain colliders.
* Don't rely on global transform. It still should give the exact same
results but allows for building navmeshes on nodes that are not in the
tree (useful in `tool` scripts).
* Update navigation gizmos after every new bake.
This work has been kindly sponsored by IMVU.
This allows more consistency in the manner we include core headers,
where previously there would be a mix of absolute, relative and
include path-dependent includes.
Modules can register their own editor plugins (like GridMap does),
so no need to put module-specific classes in the `editor/` folder.
Also cleans up the previous SCons env pollution from the Recast
module, integrating its code into libmodules as other modules.