Improve the API

- A sensible default is choosen if you don't provide a project version
- Provide graphs of objects and topological iterators
- A simpler API to define compilation units