Let documents {attach} static files. Fixes #1019.

Until now, making static files end up in the same output directory as an article that links to them has been difficult, especially when the article's output path is generated based on metadata. This changeset introduces the `{attach}` link syntax, which works like the `{filename}` syntax, but also overrides the static file's output path with the directory of the linking document.

It also clarifies and expands the documentation on linking to internal content.
This does create a mutable set, but since it's never bound to a variable or passed to any other code, I think the only way anything could mutate it is by groveling through the iterpreter's object tree. :) I chose this syntax because I think it's easier to read than `frozenset({'filename', 'attach'})`.