Ensure we can *replace* subdir.

Sometimes we don’t want to prepend/append to the source subdirectory, we want to replace it (e.g., for describing files in a contrib/ directory).
Drop dag::File::str().

We already have a perfectly good str() method from Printable; get rid of this (inconsistent and non-override!) one.
Files always have FileType types.
Rename ‘show_failure_information’.

This is really about showing failure details.
Make verbose test information a CLI argument.
Don’t create paths like ‘./foo’ or ‘foo/.’.
Make ‘subdir’ a file, not a string.

This lets us use constructs like `subdir.subdir`.
Let `some_file.name` be a *full* name.
Add more detail to ‘subdir’ test.
Check this error!
Users may not define values with reserved names.
Also assert we have the right type of value.
Add SourceRange::isInside(const SourceRange&).

Allow checking whether or not a SourceRange falls “inside” another one.
Always reset Bytestream before applying Format.
Pass a SourceRange into Structure::Create().

When we know where a structure has been defined, use that information!
Values should always have sources.
Don’t build non-existent HasNamedChildren.cc.
Trivial: drop `NULL` (prefer `nullptr`).
Test that `args` is defined at module scope.
Provide source of dag::Rule.