Do the parsing in Project instead of Ast module

And typeChecking too
Cache parse results to avoid reparsing