Keep track of the errors that resulted from parsing a file
Move all type decls into a single block
Use our own error to stick to the existing naming of struct fields etc.
Use pkg sa to parse the files being syntax checked. It gives us cached parsing and error lists for free.
minor otimization: Don't send the file's content to MarGo if we know it exists on disk and is not dirty.