Rework unit testing framework and add more tests
- API data generation script can now easily prefetch content raw data, revision parents, etc.
- Use the Rust compiler as testing repository (contains more corner case, such as submodules)
- Add more tests for revisions, metadatas, submodules
Migrated from D4235 (view on Phabricator)