Add missing 'DAG/Callable.cc' to fabfile.

Now that we’re actually possibly self-hosting, we need to always keep this file in sync with bootstrap/generate-ninja.py!
Save and restore line numbers on import().

We need to reset yylineno and yycolumn when we import a module and restore the original state when we’re done.
Allow inference of function return types.
Fix filenames in subdirectories.
Refactor top-level fabfile into modules.

Now that we properly support modules, extract the definitions of various tools and various subdirectories’ sources into separate Fabrique files.

We have now different TODO items from before.