Constructor.
When project is null, overlay_map stays empty and create()/cleanup() do nothing.
| project |
Project folder object (is_project = true) - the main project directory |
| Error |
if project is invalid, build_roots() fails, or paths are not absolute |