adding canon to utils for a more reliable hash calculation
- it needs to be performance tested (if it is too slow we should change the module)

-> now if we parse then serialize and then parse again the same project we ended in the very same root hash