Drop redundant imports.

We already import AST/ast.h, so we don’t need to re-import individual AST headers.
Add support for structure instantiation.

We have a StructureType, so allow the direct instantiation of structures.
Fix “do we output this line” logic.

We *do* want to output line 1 of an ErrorReport’s source when the error is on line 1 and contextLines_ > 0.
More assertions!
Add parsing support for import arguments.
Update list of reserved names.
Add semantic support for import arguments.

Now we can pass arguments to imported Fabrique files, although those files have no mechanism to test for argument existence.

This commit also doesn't provide command-line argument parsing.
Remove srcroot and buildroot from FabContext.

This object is just going to be used to hold type information.
Move FabContext.h to Types/TypeContext.h.
Trivial: whitespace fix.
Print command-line arguments in debug mode.
Drop unnecessary #include.
Move builtin generation out of EnterScope().

Rather than giving EnterScope() magic functionality depending on whether or not we’re already in a scope, make the driver explicitly create the top-level builtins at the top level and provide the mechanism for additional builtins, should we need them.

Now we don’t need a buildroot_ member in Parser.
More default arguments for ast::Identifier.
Make ast::Scope printable.
Complete Scope(Scope&&): clear other.symbols_.
Add Scope::Take(UniqPtr<Value>&).
Add Scope::TakeValues().
Add Parser::EnterScope(Scope&&).

This version takes ownership of the contents of the passed-in Scope.
Add default filename to Parser::ParseFile().