project: refactor project paths
Contain project paths management in a dedicated ProjectPaths class in order to:
- simplify Project class code
- access paths with nice project.path.input syntax
- allow for future extensions such as configurable paths
Closes: #69 (closed)